Я конвертирую свои циклы for в R для модели с несколькими входными наборами данных. В цикле for я использую текущее значение цикла для извлечения значений из других наборов данных. Я пытаюсь повторить это с помощью функции apply (над столбцами в наборе данных), однако я пытаюсь установить индекс функции apply для извлечения соответствующих переменных из других данных
Функция apply ссылается на столбец с помощью переменной в функции, что нормально, и я попытался использовать оба colname (после того, как назвал мои различные столбцы по номеру), но не испытал никакой радости. Ниже приведен пример набора данных и цикла с тем, чего я хотел бы достичь (несколько упрощенно). Длина векторов и количество столбцов в табличном наборе данных всегда будут равны.
iteration<-1:3
df <- data.frame("column1" = 6:10, "column2" = 12:16, "column3" = 31:35)
variable1<-rnorm(3,mean = 25)
variable2<-rnorm(3, mean = 0.21)
outcome<-numeric()
for (i in iteration) {
intermediate<-(mean(df[,i])*variable1[i])^variable2[i]
outcome<-c(outcome,intermediate)
}
outcome
Ожидаемые результаты - результат выше ... пробуем примениться
То, что я себе представляю, таково:
apply(df, 2, function(x) (mean(x)*variable1[colnumber(x)])^variable2[colnumber(x)]
или, возможно,
apply(df, 2, function(x) (mean(x)*variable1[x])^variable2[x])
но эти два, очевидно, не работают.