数据框上的ddply结果问题 - R.

时间:2012-08-31 21:22:33

标签: r plyr

所以我有一个数据框,比如下面的数据:

    Count    Amount    Org         Bank
------------------------------------------
      1        100      ABC       Chase
      15        76       DEF    American Express
    ...
    ...

当我使用

运行ddply
result1 <- ddply(df, 4, count = sum(as.numeric(df[[1]])), amt = sum(as.numeric(df[[2]])))

我得到的结果result1对所有行都有相同的值(即countamt),即

 description      count        amt
  Chase             900        432087
  American Express  900        432087
.....

绝对不是这样的。不知何故,似乎计算的最后一个sum()值应用于所有行。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:7)

这里有一些问题:

  1. 您收到相同/错误的结果,因为您在ddply的参数中引用了原始数据框df - 例如df[[1]]
    Ddply不能那样工作 - 直接使用列名,例如AmountCount

  2. 您缺少ddply的.fun函数参数 - 在这种情况下summarize是合适的。
    (老实说,如果没有这个,我根本不知道你的代码是如何工作的。)

  3. 您正在使用未记录的方式(4)在.variable参数中选择组列。请改为.(Bank)c("Bank")

  4. 这应该有效:

    ddply(df, .(Bank), summarize, count = sum(as.numeric(Count)),
                                  amt = sum(as.numeric(Amount)))