Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.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
NA在r中的组的累积平均值_R_Dplyr - Fatal编程技术网

NA在r中的组的累积平均值

NA在r中的组的累积平均值,r,dplyr,R,Dplyr,我想通过忽略NA的组来使用cummean。下面是示例数据 data.frame(group1 = c(rep(1,3),rep(2,3),rep(3,3)), val = c(c(NA,4,5),c(NA,NA,5),c(1,NA,3))) 我如何通过忽略组NA获得累积平均值 这是我想要的 c(NA,4,4.5,NA,NA,5,1,1,2) 在计算cummean library(dplyr) library(tidyr) df1 %>% group_by

我想通过忽略
NA
的组来使用
cummean
。下面是示例数据

data.frame(group1 = c(rep(1,3),rep(2,3),rep(3,3)),
           val = c(c(NA,4,5),c(NA,NA,5),c(1,NA,3)))
我如何通过忽略组
NA
获得累积平均值

这是我想要的

c(NA,4,4.5,NA,NA,5,1,1,2)

在计算
cummean

library(dplyr)
library(tidyr)
df1 %>%
     group_by(group1) %>%
     mutate(new = replace(val, !is.na(val), cummean(val[!is.na(val)]))) %>%
     fill(new)
-输出

# A tibble: 9 x 3
# Groups:   group1 [3]
#  group1   val   new
#   <dbl> <dbl> <dbl>
#1      1    NA  NA  
#2      1     4   4  
#3      1     5   4.5
#4      2    NA  NA  
#5      2    NA  NA  
#6      2     5   5  
#7      3     1   1  
#8      3    NA   1  
#9      3     3   2  
 
#一个tible:9 x 3
#分组:第1组[3]
#第1组val新
#     
#1纳纳
#2      1     4   4  
#3      1     5   4.5
#4.2纳纳
#5.2纳纳
#6      2     5   5  
#7      3     1   1  
#8 3 NA 1
#9      3     3   2  

在计算
cummean

library(dplyr)
library(tidyr)
df1 %>%
     group_by(group1) %>%
     mutate(new = replace(val, !is.na(val), cummean(val[!is.na(val)]))) %>%
     fill(new)
-输出

# A tibble: 9 x 3
# Groups:   group1 [3]
#  group1   val   new
#   <dbl> <dbl> <dbl>
#1      1    NA  NA  
#2      1     4   4  
#3      1     5   4.5
#4      2    NA  NA  
#5      2    NA  NA  
#6      2     5   5  
#7      3     1   1  
#8      3    NA   1  
#9      3     3   2  
 
#一个tible:9 x 3
#分组:第1组[3]
#第1组val新
#     
#1纳纳
#2      1     4   4  
#3      1     5   4.5
#4.2纳纳
#5.2纳纳
#6      2     5   5  
#7      3     1   1  
#8 3 NA 1
#9      3     3   2  

我不认为重复链接地址问题OP askedHere更合适重复:我不认为重复链接地址问题OP askedHere更合适重复:我忽略NAs不将其视为零。你能看看想要的输出吗?@Johnlegend2我更新了post@Johnlegend2我认为在预期输出中,您显示的是
5112
而不是
51na2
,因为第8个obs是NA,非常感谢您。我怎样才能得到期望的输出?我可以要非NA值的第八排吗?非常感谢!!我不认为这些是零。你能看看想要的输出吗?@Johnlegend2我更新了post@Johnlegend2我认为在预期输出中,您显示的是
5112
而不是
51na2
,因为第8个obs是NA,非常感谢您。我怎样才能得到期望的输出?我可以要非NA值的第八排吗?非常感谢!!