我有一个data.frames列表,在对一些列进行分区之后,我希望得到一个具有所有方法的新data.frame。示例如下:
a=data.frame(ID=1:100,WT=1:100)
b=data.frame(ID=101:205,WT=101:205)
c=data.frame(ID=1001:1010,WT=1001:1010)
d=list(a,b,c)
names(d)=c("P01","P02","P03")
然后,我为每个数据框创建了两个额外的列
d2=lapply(d,transform,seq=seq_along(ID))
d3=lapply(d2,transform,bin=cut(seq,20,1:20))
现在,我想获得与bin列相关的方法。以下代码显示了我是如何仅为一位参与者做的:
P01=aggregate(d3$P01$WT,list(d3$P01$bin),mean)
P01$Participant="P01"
新的" P01" data.frame有三列:名为bin的列,然后是列WT的方法,最后是参与者的名称。
我的问题是,如何自动化这个过程,所以我不仅可以获得P01的数据帧,还可以获得所有其他参与者(即P02和P03)的数据框? 该数据框应具有三列和所有参与者的数据。
答案 0 :(得分:0)
也许
mylist <- sapply(names(d3), function(p){
transform(aggregate(d3[[p]]$WT, list(d3[[p]]$bin), mean), Participant=p)
}, simplify=FALSE)
这会给出一个包含三个数据框P01
,P02
,P03
的列表。
然后你可以连接成一个数据帧:
do.call(rbind, mylist)