累积平均值不包括当前观察值-使用cummean和group_,忽略NAs
但是累积平均值不包括当前观察值-使用cummean和group_,忽略NAs,r,dplyr,R,Dplyr,但是cummean只是不知道如何处理NAs,不幸的是lag生成了NAs 我不想将NAs计算为0。一个人可以先锻炼cummean,然后再进行同样的lag df %>% group_by(category, isna = is.na(value)) %>% mutate(new_col = ifelse(isna, NA, cummean(lag(value)))) 库(dplyr) df%>% 分组依据(类别,isna=is.na(值))%>% 突变(新列=滞后(平均值))%
cummean
只是不知道如何处理NAs,不幸的是lag
生成了NAs
我不想将NAs计算为0。一个人可以先锻炼
cummean
,然后再进行同样的lag
df %>%
group_by(category, isna = is.na(value)) %>%
mutate(new_col = ifelse(isna, NA, cummean(lag(value))))
库(dplyr)
df%>%
分组依据(类别,isna=is.na(值))%>%
突变(新列=滞后(平均值))%>%
解组()%>%
选择(-isna)
##tibble:8 x 3
#类别值新列
#
#1 cat1 NA NA
#2 cat1 2.00 NA
#3 cat2 3.00 NA
#4 cat1 4.00 2.00
#5 cat2 5.00 3.00
#6 cat2 NA NA
#7 cat1 7.00 3.00
#8 cat2 8.00 4.00
df %>%
group_by(category, isna = is.na(value)) %>%
mutate(new_col = ifelse(isna, NA, cummean(lag(value))))
library(dplyr)
df %>%
group_by(category, isna = is.na(value)) %>%
mutate(new_col = lag(cummean(value))) %>%
ungroup() %>%
select(-isna)
# # A tibble: 8 x 3
# category value new_col
# <fctr> <dbl> <dbl>
# 1 cat1 NA NA
# 2 cat1 2.00 NA
# 3 cat2 3.00 NA
# 4 cat1 4.00 2.00
# 5 cat2 5.00 3.00
# 6 cat2 NA NA
# 7 cat1 7.00 3.00
# 8 cat2 8.00 4.00