0

月に基づいてデータを要約しようとしています。たとえば、次のデータセットがあります。

x
        Date App Vol
1 2010-01-30   A 100
2 2010-01-28   B 140
3 2010-01-30   C 160
4 2010-02-28   A 110
5 2010-02-28   B 120
6 2010-02-28   C 300

毎月アプリデータをまとめられるようにしたいと思います。上記のデータフレームによると、Aは210、B = 260、C=460などである必要があります。

以下の集計関数aseを使用していますが、エラーが発生します。

y<-aggregate(x$Vol, list(Month = format(as.POSIXct(x$Date), "%Y-%m")), sum)

何か案は?

4

2 に答える 2

1

数値に変換することから始めVolます(それはどういうわけか台無しになりました):

x$Vol <- as.numeric(as.character(x$Vol))

Volここに見られるように、私はあなたのエラーを要因に変えることによって再現することができます:

x$Vol <- as.factor(x$Vol)
aggregate(x$Vol, list(x$App), sum)

#> aggregate(x$Vol, list(x$App), sum)
#Error in Summary.factor(1:2, na.rm = FALSE) : 
#  sum not meaningful for factors

またあなたは言う:

I would like to be able to summary App data by each month. According to the 
data frame above, A should be 210, B = 260, C=460 etc.

これが当てはまる場合は、次を使用します。

x$Month <-  format(as.POSIXct(x$Date), "%Y-%m")
aggregate(x$Vol, list(x$Month, x$App), sum)

それ以外の場合は、ttmacerの提案を使用してください。

于 2012-07-30T14:12:21.437 に答える
0
x<-read.table(header=T,text="Date       App   Vol
    1 2010-01-30   A        100
    2 2010-01-28   B     140
    3 2010-01-30   C     160
    4 2010-02-28   A        110     
    5 2010-02-28   B         120      
    6 2010-02-28   C         300") 



y<-aggregate(x$Vol, list(Month = format(as.POSIXct(x$Date), "%Y-%m")), sum)
y<-aggregate(x$Vol, list(x$App), sum)

このデータを使用してみてください。

于 2012-07-30T14:05:00.750 に答える