【问题标题】:sum/aggregate data based on dates, R基于日期的总和/聚合数据,R
【发布时间】:2014-05-29 12:20:27
【问题描述】:

我有如下数据集:

Date            Country    Item    Qty    Value
15-04-2014      SE         08888   2      20
28-04-2014      SE         08888   2      20
05-05-2014      SE         08888   6      80

当日期在 5 月 1 日之前,我想对数量值求和,并且聚合值(总和)应标记为 5 月 1 日。

我试过ddply,但不管日期如何,它都会对所有值求和。

ddply(se, .(se$Item), summarize, Qty = sum(se$Qty), Value = sum(se$Value))

还尝试按日期进行子集化,但没有太大成功。

se$Date <- as.Date(as.character(se$Date))
se_q <- subset(se,se$Date <= 01-05-2014)

Date         Country Item     Qty    Value
0015-04-20   SE      08888    2      20
0028-04-20   SE      08888    2      20
0005-05-20   SE      08888    6      80

如何在代码中添加日期参数?或者我该怎么做?

谢谢

【问题讨论】:

    标签: r date


    【解决方案1】:

    例如,您可以使用dplyr

    require(dplyr)
    
    > df %.% 
        filter(Date <= as.Date("2014-05-01")) %.% 
     #  group_by(Item) %.%                       #you can add this line if you need to group by Item (it will appear in the output then)
        summarize(Date = as.Date("2014-05-01"), Qty = sum(Qty), Value = sum(Value))
    
    #        Date Qty Value
    #1 2014-05-01   4    40
    

    subset 中的问题是你没有告诉 R 2014-05-01Date

    【讨论】:

    • 非常感谢您的及时回复:-)
    • 我运行了代码,得到以下消息 Date Qty 1 2014-05-01 10 警告消息:在 filter_impl(.data, dots(...), environment()) : Incompatible methods ("Ops.factor", "Ops.Date") 用于 "
    • 您是否将Date 列转换为Date 格式?试试df$Date &lt;- as.Date(as.character(df$Date), format="%d-%m-%Y")
    猜你喜欢
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2022-01-07
    • 2022-01-03
    • 2021-08-11
    • 1970-01-01
    • 2018-08-16
    • 2021-11-17
    相关资源
    最近更新 更多