我有两个向量:
EventDate <- c("2018-10-31", "2018-11-16", "2018-12-02")
ThirtyDaysPriorEvent <- c("2018-10-01", "2018-10-17", "2018-11-02")
我需要帮助为以下工作流程编写循环函数:
这是我想要实现的结果:
事件数据框中名为"d“的新列,该列来自活动数据框中列"x”中的聚合值。
date a b c d
2018-10-31 42 60.5 152.4 16.63
2018-11-16 54 54.1 151.6 16.63
2018-12-02 63 74.2 153.5 19.95
然而,这就是我所得到的:
library(dplyr)
# identifies dates in the same index position for each vector & stores results in variables
e <- EventDate[1]
e30 <- ThirtyDaysPriorEvent[1]
# uses variables to filter Activities dataframe
Activities30Dys <- Activities %>%
filter(date > e30 & date < e)
# computes sum of x activity done 30 days prior to event date
sum(Activities30Dys$x, na.rm = TRUE)
# adds new column (d) to Events dataframe
Events %>%
mutate()
以下是我的可重现数据:
Events <- structure(list(date = c("2018-10-31", "2018-11-16", "2018-12-02"
), a = c(42L, 54L, 63L), b = c(60.5, 54.1, 74.2), c = c(152.4,
151.6, 153.5)), .Names = c("date", "a", "b", "c"), row.names =
c(NA, 3L), class = "data.frame")
Activities <- structure(list(date = c("2018-09-18", "2018-09-19", "2018-10-21",
"2018-10-21", "2018-10-24", "2018-10-26", "2018-10-27", "2018-11-18",
"2018-11-19", "2018-11-21", "2018-11-24", "2018-11-26", "2018-11-27",
"2018-12-05"), x = c(3.43, 3.16, 3.2, 3.27, 3.74, 3.2, 3.22,
3.43, 3.16, 3.2, 3.74, 3.2, 3.22, 3.02), y = c(132L, 122L, 120L,
130L, 127L, 128L, 127L, 132L, 122L, 120L, 127L, 128L, 127L, 121L
)), .Names = c("date", "x", "y"), row.names = c(NA, 14L), class = "data.frame")
我如何才能最好地使用R来实现我的目标?
https://stackoverflow.com/questions/53803976
复制相似问题