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值的第八排吗?非常感谢!!