Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
累积平均值不包括当前观察值-使用cummean和group_,忽略NAs_R_Dplyr - Fatal编程技术网

累积平均值不包括当前观察值-使用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