Я пытаюсь создать список новых переменных, которые представляют отклонения от минимальных значений переменных на основе подмножеств другой переменной.
Рассмотрим следующее:
df <- data.frame(
cluster = c("A","B","B","A","A","B"),
x = c(3,4,1,5,2,6),
y = c(4,5,3,1,2,6))
Я хотел бы создать две новые переменные, называть их x.var и y.var, которые принимают отклонение от минимального значения соответствующегобазовые переменные, зависящие от кластера.Таким образом, x.var и y.var, мы надеемся, будут:
x.var y.var
-1 -3
-3 -2
0 0
-3 0
0 -1
-5 -3
Я безуспешно пытался использовать lapply с анонимной функцией для достижения этой цели:
vars <- lapply(df[,c(2:3)],function(x)
ifelse(df$cluster=="A",
min(df[df$cluster=="A",x])-x,
min(df[df$cluster=="B",x])-x))
Я получаю следующееошибка:
Error in `[.data.frame`(df, df$cluster == "A", x) : undefined columns selected
Любая помощь будет высоко ценится!