У меня есть n фреймов данных в одном списке, и я хочу заполнить новые столбцы разными значениями и одинаковыми именами. вот моя попытка сделать то же самое.
# here for example I have 5 data frames in the list called list.s
df1<- (data.frame(x=c(1.3,2.5,3.3,2.4,1.9),y=c( 9,11, 4,5,15), z=c(0.01,0.04,0.1,0.002,0.4)))
df2<- (data.frame(x=c(1.33,2.25,2.3,0.4,1.19),y=c( 2,22, 14,8,15), z=c(0.21,0.3,0.11,0.002,0.8)))
df3<- (data.frame(x=c(2.4,2.6,3.7,0.1,1.15),y=c( 10,11, 12,5,11), z=c(0.11,0.04,0.08,0.002,0.03)))
df4<- (data.frame(x=c(0.12,0.04,2.02,3.01,5.1),y=c( 5,11, 22,5,13), z=c(1.01,0.04,0.012,0.002,0.4)))
df5<- (data.frame(x=c(2.4,4.1,3.04,2.06,0.9),y=c( 6,21, 12,10,8), z=c(0.01,0.04,0.1,0.02,0.154)))
list.s<- list(df1=df1,df2=df2,df3=df3,df4=df4,df5=df5)
# the names of the column which I want to add and fill
a<-paste0(c("a0","a1","a2","a3","a4","a5"), rep(1:5,each=6))
list.s[["df1"]]$a01<- 1
list.s[["df1"]]$a11<- list.s[["df1"]]$x * list.s[["df1"]]$y
list.s[["df1"]]$a21<- list.s[["df1"]]$z^2
list.s[["df1"]]$a31<- list.s[["df1"]]$x^2
list.s[["df1"]]$a41<- list.s[["df1"]]$y -list.s[["df1"]]$z
list.s[["df1"]]$a51<- list.s[["df1"]]$y +list.s[["df1"]]$x+list.s[["df1"]]$z
list.s[["df1"]][, a[7:30]]<-0
# now I want to add columns to the df2
list.s[["df2"]][,a[1:6]]<-0
list.s[["df2"]]$a02<- 1
list.s[["df2"]]$a12<- list.s[["df2"]]$x * list.s[["df2"]]$y
list.s[["df2"]]$a22<- list.s[["df2"]]$z^2
list.s[["df2"]]$a32<- list.s[["df2"]]$x^2
list.s[["df2"]]$a42<- list.s[["df2"]]$y -list.s[["df2"]]$z
list.s[["df2"]]$a52<- list.s[["df2"]]$y +list.s[["df2"]]$x+list.s[["df2"]]$z
list.s[["df2"]][, a[13:30]]<-0
# again do the same and add columns to df3
list.s[["df3"]][,a[1:12]]<-0
list.s[["df3"]]$a03<- 1
list.s[["df3"]]$a13<- list.s[["df3"]]$x * list.s[["df3"]]$y
list.s[["df3"]]$a23<- list.s[["df3"]]$z^2
list.s[["df3"]]$a33<- list.s[["df3"]]$x^2
list.s[["df3"]]$a43<- list.s[["df3"]]$y -list.s[["df3"]]$z
list.s[["df3"]]$a53<- list.s[["df3"]]$y +list.s[["df3"]]$x+list.s[["df3"]]$z
list.s[["df3"]][, a[19:30]]<-0
# again the same for df4
list.s[["df4"]][,a[1:18]]<-0
list.s[["df4"]]$a04<- 1
list.s[["df4"]]$a14<- list.s[["df4"]]$x * list.s[["df4"]]$y
list.s[["df4"]]$a24<- list.s[["df4"]]$z^2
list.s[["df4"]]$a34<- list.s[["df4"]]$x^2
list.s[["df4"]]$a44<- list.s[["df4"]]$y -list.s[["df4"]]$z
list.s[["df4"]]$a54<- list.s[["df4"]]$y +list.s[["df4"]]$x+list.s[["df4"]]$z
list.s[["df4"]][, a[25:30]]<-0
# and finally do the same for the df5
list.s[["df5"]][,a[1:24]]<-0
list.s[["df5"]]$a05<- 1
list.s[["df5"]]$a15<- list.s[["df5"]]$x * list.s[["df5"]]$y
list.s[["df5"]]$a25<- list.s[["df5"]]$z^2
list.s[["df5"]]$a35<- list.s[["df5"]]$x^2
list.s[["df5"]]$a45<- list.s[["df5"]]$y -list.s[["df5"]]$z
list.s[["df5"]]$a55<- list.s[["df5"]]$y +list.s[["df5"]]$x+list.s[["df5"]]$z
Могу ли я сделать это в одном коде вместо того, чтобы повторять и заполнять их отдельно, есть ли какая-то помощь в этом отношении?