【发布时间】:2015-12-12 02:48:19
【问题描述】:
我有一个数据框列表,每个数据框都有一个唯一的名称,可用于查找其组标识。我想按组身份拆分此列表,平均每个组中的数据帧,并将其全部返回到按组重命名的数据帧列表中。以下代码可以满足我的要求,但我觉得它使用了太多的“层”功能。必须有一个更简单/更快/更优雅的解决方案,而不是用 'plyr' 抨击列表直到它comPLYes(bwahaha)。
l<-list(a.txt=data.frame(x=c(1,4), y=c(5,5)),
b.txt=data.frame(x=c(5,3), y=c(4,5)),
c.txt=data.frame(x=c(1,1), y=c(6,2)),
d.txt=data.frame(x=c(9,9), y=c(4,1)))
e<-data.frame(ID=c("a","b","c","d"), Grp=c("amb","amb","sam","sam"))
f<-unique(e$Grp)
new_l<-llply(seq_along(f), function(x,n,i){as.data.frame(
aaply(laply(x[paste(e$ID[e$Grp%in%n[i]],".txt", sep="")], as.matrix),
c(2,3), mean))}, x=l, n=f)
names(new_l)<-gids
如果这个问题得到了回答,请指出我正确的方向,因为我找不到它。
【问题讨论】:
标签: r dataframe plyr data-manipulation