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

我希望能够按月汇总 App 数据。根据上面的数据框,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 回答