Lor*_*ein 17 aggregate r dataframe
我正在使用R中的"by"函数来切断数据框并将函数应用于不同的部分,如下所示:
pairwise.compare <- function(x) {
Nright <- ...
Nwrong <- ...
Ntied <- ...
return(c(Nright=Nright, Nwrong=Nwrong, Ntied=Ntied))
}
Z.by <- by(rankings, INDICES=list(rankings$Rater, rankings$Class), FUN=pairwise.compare)
Run Code Online (Sandbox Code Playgroud)
结果(Z.by)看起来像这样:
: 4
: 357
Nright Nwrong Ntied
3 0 0
------------------------------------------------------------
: 8
: 357
NULL
------------------------------------------------------------
: 10
: 470
Nright Nwrong Ntied
3 4 1
------------------------------------------------------------
: 11
: 470
Nright Nwrong Ntied
12 4 1
Run Code Online (Sandbox Code Playgroud)
我想要的是将此结果转换为数据框(不存在NULL条目),所以它看起来像这样:
Rater Class Nright Nwrong Ntied
1 4 357 3 0 0
2 10 470 3 4 1
3 11 470 12 4 1
Run Code Online (Sandbox Code Playgroud)
我怎么做?
Sha*_*ane 17
该by函数返回一个列表,因此您可以执行以下操作:
data.frame(do.call("rbind", by(x, column, mean)))
Run Code Online (Sandbox Code Playgroud)
考虑在plyr包中使用ddply而不是使用.它处理将列添加到数据框的工作.
| 归档时间: |
|
| 查看次数: |
12398 次 |
| 最近记录: |