我在这里列出了类似的问题,但没有一个能够为我工作。我在数据框中列出了二进制数据,我想根据另一个变量进行聚合。例如。
Data.frame (A & B are columns)
A B
1 23
0 7
0 23
0 7
1 4
我已经尝试了以下(找到平均值时有效)并收到以下错误消息:
aggregate( A~B, data.frame, sum)
Error in FUN(X[[1L]], ...) : invalid 'type' (character) of argument
理想情况下,我想要一个输出23 = 1,7 = 0,4 = 1
有人可以帮我吗?
提前致谢!
答案 0 :(得分:1)
许多方法可以做到这一点,但首先要做的是:
library(plyr)
foo <- data.frame(A = c(1, 0, 0, 0, 1),
B = c(23, 7, 23, 7, 4))
ddply(foo, .(B), summarise, sum = sum(A))
给出:
> ddply(foo, .(B), summarise, sum = sum(A))
B sum
1 4 1
2 7 0
3 23 1
>
答案 1 :(得分:0)
你究竟打电话给我什么?您str
的{{1}}是什么?
data.frame
给出
mdf <- data.frame( A = c(1,0,0,0,1), B = c(23, 7 ,23, 7,4)
aggregate( A ~ B, mdf, sum )
修改强>
因此,如果您的问题是,您的列 B A
1 4 1
2 7 0
3 23 1
不是数字,您可以通过
A