【问题标题】:Conditional sum in r using date from 2 dataset使用来自 2 个数据集的日期在 r 中进行条件总和
【发布时间】:2018-11-12 20:46:11
【问题描述】:

我正在尝试在 r 中进行条件求和。 例如,我的数据如下所示:

data1 包含 Date、Investor 和 Buyvol 变量

data2 仅包含 Date 变量

如果data2$Datedata1$Date 匹配并且data1$investor 等于8000,我想对Buyvol 变量求和。

sum(Jan$Buyvol[format(Jan$Date,"%d") == format(event$Date,"%d") & Jan$Investor == 8000])

如果在上面执行此代码,则在使用手动日期检查时会显示错误的 sum 值,如下所示。

sum(Jan$Buyvol[Jan$Date == "2016-01-04" & Jan$Investor == 8000])
sum(Jan$Buyvol[Jan$Date == "2016-01-06" & Jan$Investor == 8000])
sum(Jan$Buyvol[Jan$Date == "2016-01-04" & Jan$Investor == 8000 | Jan$Date == "2016-01-06" & Jan$Investor == 8000])

我可以在不手动输入每个日期的情况下为这个条件总和编码吗? 非常感谢!

【问题讨论】:

  • 欢迎来到 SO!您可以使用dput 函数轻松添加数据,并且可以在编辑器中格式化代码部分。这样我们就可以更轻松地阅读您的帖子并提供帮助。

标签: r date sum conditional


【解决方案1】:
x <- merge(x = data1, 
           y = data2, 
           by.x = Date, 
           by.y = Date, 
           all.X = FALSE, 
           all.Y = TRUE)

print(sum(x[x$investor == 8000, 'Buyvol']))

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2016-12-30
    • 2023-01-19
    相关资源
    最近更新 更多