0

だから私はデータフレームを持っています、例えば次のデータで:

    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同じ値(つまりcountと)を持つ結果が得られます。amt

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

確かにそうではありません。どういうわけか、sum()計算されている最後の値がすべての行に適用されているようです。ここで何かが足りませんか?

4

1 に答える 1

7

ここにはいくつかの問題があります。

  1. dfddplyの引数で元のデータフレームを参照しているため、同じ/間違った結果df[[1]]が得られます。
    Ddplyはそのようには機能しません-列名を直接使用します(例:Amountおよび)Count

  2. .funddplyの関数引数がありません-この場合summarizeは適切です。
    (正直なところ、これなしでコードがどのように機能するかはまったくわかりません。)

  3. 文書化されていない方法()を使用して、引数4のグループ列を選択しています。または代わりに .variable試してください。.(Bank)c("Bank")

これは機能するはずです:

ddply(df, .(Bank), summarize, count = sum(as.numeric(Count)),
                              amt = sum(as.numeric(Amount)))
于 2012-08-31T21:25:42.730 に答える