У меня есть таблица данных, которая выглядит примерно так, и я хочу применить к ней функцию f
library(data.table)
dt <- data.table(id= c(1,1,1,2,2,2,3,3,3), year=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))
f <- function(data, var1, var2){
data[,(paste("times",var1,var2, sep = "_")) := get(var1)*get(var2)]
}
Я хотел бы применить f
к нескольким переменным, получая результаты, аналогичные один ниже:
vars<-c("x1","x2","c2")
dt2<-lapply(vars, function(x) f(dt,"y", x))
dt2<-do.call(rbind,dt2)
Я хотел бы получить те же результаты, используя для l oop вместо lapply
, к сожалению, я не очень хорош с циклами. Кто-нибудь может мне помочь? пока я пробовал следующее, но оно не работает должным образом.
for(i in vars) {
dt<-f(dt,"y",i)
}
Заранее большое спасибо за вашу помощь