所以我有一个数据框,比如下面的数据:
Count Amount Org Bank
------------------------------------------
1 100 ABC Chase
15 76 DEF American Express
...
...
Run Code Online (Sandbox Code Playgroud)
当我运行ddply使用时:
result1 <- ddply(df, 4, count = sum(as.numeric(df[[1]])), amt = sum(as.numeric(df[[2]])))
Run Code Online (Sandbox Code Playgroud)
我得到的结果result1是对所有行具有相同的值(即count和amt),即
description count amt
Chase 900 432087
American Express 900 432087
.....
Run Code Online (Sandbox Code Playgroud)
绝对不是这样的.不知何故,似乎sum()计算的最后一个值应用于所有行.我在这里错过了什么吗?
这里有一些问题:
你得到相同/错误的结果,因为你df在ddply的参数中引用了原始数据帧- 例如df[[1]].
Ddply不能那样工作 - 直接使用列名,例如Amount和Count.
你缺少.funddply 的函数参数 - 在这种情况下summarize是合适的.
(老实说,如果没有这个,你的代码根本就不会有用.)
您正在使用未记录的方式(4)在.variable参数中选择组列.尝试.(Bank)或c("Bank")改为.
这应该工作:
ddply(df, .(Bank), summarize, count = sum(as.numeric(Count)),
amt = sum(as.numeric(Amount)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |