使用 R 计算 data.frame 中存在的 NA 值的平均值

Calculating mean with NA value present in a data.frame using R

我有一个 data.frame 并且想要对存在 NA 的列进行平均。

在执行计算时,我注意到 R 无法计算平均值,结果返回 NA。

OBS:我无法删除带有 NA 的行,因为它会删除其他包含我感兴趣的值的列。

df1<-read.table(text="st    date    ph
1   01/02/2004  5
16  01/02/2004  6
2   01/02/2004  8
2   01/02/2004  8
2   01/02/2004  8
16  01/02/2004  6
1   01/02/2004  NA
1   01/02/2004  5
16  01/02/2004  NA
", sep="", header=TRUE)

df2<-df1%>%
 group_by(st, date)%>%
  summarise(ph=mean(ph))

View(df2)

出来

我的期望是这个结果:

您需要使用na.rm = TRUE:

df2<-df1%>%
  group_by(st, date)%>%
  summarise(ph=mean(ph, na.rm = TRUE))

df2
# A tibble: 3 x 3
# Groups:   st [3]
     st date          ph
  <int> <chr>      <dbl>
1     1 01/02/2004     5
2     2 01/02/2004     8
3    16 01/02/2004     6