【发布时间】:2014-08-17 15:13:21
【问题描述】:
有没有办法复制ddply的功能?我想按组获得相关性,并将结果作为数据帧作为输出,而无需加载包 plyr。
例如我有数据框(df):
Obs Group Val1 Val2
Obs1 Group1 1 2
Obs2 Group1 2 1
Obs3 Group2 5 6
Obs4 Group2 6 5
我希望将输出作为数据框 (Corr)
Group Correlation
Group1 -1
Group2 -1
我目前使用这个功能:
func <- function(df)
{
return(data.frame(Correlation = cor(df$Val1, df$Val2, method = "pearson")))
}
Corr <- ddply(df, .(Group), func)
我尝试将 ddply 替换为:
Corr <- data.frame(sapply(split(df, df$Group),func))
但是没有用。
有什么想法吗?
感谢您的支持。
【问题讨论】:
-
将数据框行改为
do.call(rbind, lapply(...)) -
@rawr,发表评论作为答案...
标签: r split subset plyr sapply