【发布时间】:2019-09-10 09:58:14
【问题描述】:
我有一个数据框 df,其中包含 validFrom、validTo 列。
df = structure(list(uid = c(5001334L, 5001346L, 5001645L, 5002209L,
5002613L, 5002871L, 5003095L, 5003112L, 5003306L, 5003576L, 5003655L,
5003667L, 5003679L, 5003681L), value = c(26655L, 16196L, 17928L,
16155L, 10852L, 12340L, 14339L, 10190L, 11342L, 11447L, 12843L,
12285L, 16435L, 10496L), validFrom = structure(c(-63158400, -444528000,
-394588800, -320889600, -788918400, -378691200, -578620800, -334108800,
-536457600, -312940800, -412905600, -397180800, -231465600, -839030400
), class = c("POSIXct", "POSIXt"), tzone = ""), validTo = structure(c(278640000,
410140800, 546739200, 460080000, 725760000, 296956800, 299548800,
441676800, 323308800, 483667200, 444355200, 275961600, 420508800,
-58060800), class = c("POSIXct", "POSIXt"), tzone = "")), row.names = c(NA,
-14L), class = "data.frame", .Names = c("uid", "value", "validFrom",
"validTo"))
我们如何为sort(unique(c(df$validTo, df$validFrom))) 中每个日期有效的所有uid 求和value
outpout 将是一个包含 2 列的数据框:
* 来自sort(unique(c(df$validTo, df$validFrom))) 的日期
* date 在validFrom和validTo之间的每一行的总和
我想避免循环,因为我的数据框很长,有很多日期!
乐于使用任何包,基础 R 包或 tidyr/dplyr/table
【问题讨论】:
-
你能显示你的预期输出吗?
-
是什么让
value无效? -
@RuiBarradas 如果日期在 validFrom 和 validTo 之间,则行条目有效