在for循环中广播多个数据帧

时间:2019-07-13 21:39:09

标签: r for-loop data.table reshape2 dcast

所以我有多个数据框,遵循以下模式:

df1<-data.frame(id=c("1","2","1","2"),choice=c(1,1,1,2))
df2<-data.frame(id=c(...),choice=c(...))
df1
  id choice
1  1      1
2  2      1
3  1      1
4  2      2

现在我想知道,每个人多久选择一次不同的选择:

df1_cast<-dcast(df1,choice~id,value.var = "choice",fill = 0,fun.aggregate = length)
df1_cast
  choice 1 2
1      1 2 1
2      2 0 1

因为我有多个数据帧,所以我尝试使用for循环将其循环:

experiments<-list(df1,df2,...)
for (i in 1:length(experiments)){
  dcast(experiments[i],choice~id,value.var="choice",fill=0,fun.aggregate=length)

}

可悲的是,数据帧被另存为列表,并且dcast函数找不到value.var

1 个答案:

答案 0 :(得分:2)

您可以使用map <int, map <int, double> > f

lapply