使用 R 的累积和
cumulative sum using R
我有一个这样的数据文件问题:金星和火星之间的总发生率(累计和)在什么日期超过 2000?
我创建了一个使用索引而不是日期列的简单示例:
df <- data.frame(country = c(rep("Mar",10), rep("Venus",10)),
incidence = runif(20,0,30),
index=seq(1,20,1))
library(dplyr)
df %>%
group_by(country) %>%
mutate(cumInc = cumsum(incidence)) %>%
filter(cumInc > 100) %>%
filter(index==min(index))
country incidence index cumInc
<fct> <dbl> <dbl> <dbl>
1 Mar 29.2 10 108.
2 Venus 22.5 16 110.
您只需将 100 更改为您的阈值并将索引更改为日期,以便在累积和超过给定阈值时获得金星和三月的第一个日期。例如:
df %>%
group_by(country) %>%
mutate(cumInc = cumsum(incidence)) %>%
filter(cumInc > **Your Threshold**) %>%
filter(date==min(date))
如果您想稍后获得 data.frame,只需添加 %>% as.data.frame()
。
如果你想保存你的信息,只需使用类似的东西:
result <- df %>%
group_by(...
我有一个这样的数据文件
我创建了一个使用索引而不是日期列的简单示例:
df <- data.frame(country = c(rep("Mar",10), rep("Venus",10)),
incidence = runif(20,0,30),
index=seq(1,20,1))
library(dplyr)
df %>%
group_by(country) %>%
mutate(cumInc = cumsum(incidence)) %>%
filter(cumInc > 100) %>%
filter(index==min(index))
country incidence index cumInc
<fct> <dbl> <dbl> <dbl>
1 Mar 29.2 10 108.
2 Venus 22.5 16 110.
您只需将 100 更改为您的阈值并将索引更改为日期,以便在累积和超过给定阈值时获得金星和三月的第一个日期。例如:
df %>%
group_by(country) %>%
mutate(cumInc = cumsum(incidence)) %>%
filter(cumInc > **Your Threshold**) %>%
filter(date==min(date))
如果您想稍后获得 data.frame,只需添加 %>% as.data.frame()
。
如果你想保存你的信息,只需使用类似的东西:
result <- df %>%
group_by(...