Я учусь запускать функции. Надеюсь, на этот вопрос было бы легко ответить.
У меня есть df
, и я хочу передать функцию w
некоторым переменным в df.
df <- data.frame(id= c(1,1,1,2,2,2,3,3,3), time=c(1,2,3,1,2,3,1,2,3),y = rnorm(9), x1 = rnorm(9), x2 = c(0,0,0,0,1,0,1,1,1),c2 = rnorm(9))
library(data.table)
library(dplyr)
w<-function(data,var1,var2){
x <- substitute(var1)
y <- substitute(var2)
data<-setDT(data)[,paste("times",(var1), (var2), sep = "_"):=eval(var1)*eval(var2)]
}
df2<- w(df,y,x1)
Когда я применяю функцию к одной переменной, функция работает. но я хотел бы применить его к ряду переменных в моем фрейме данных, но по какой-то причине функция завершается ошибкой, когда я пытаюсь применить его к нескольким переменным одновременно. Кто-нибудь знает, как я мог заставить его работать?
Пока я пробовал следующее
vars<-c("x1","x2")
df3<- lapply(vars, function(x) w(df,y, x))
большое спасибо за вашу помощь