R 中部分和完全缺失数据的求和

问题描述 投票:0回答:1

我的数据有时部分丢失,有时完全丢失。如果我对部分缺失的数据求和,我想返回非缺失数据的总和,但如果我对完全缺失的数据求和,我想返回缺失的值。

我正在使用 Base R,但如果使用 tidyverse 有更好的解决方案,我很乐意使用它。

以下是我在 R 中使用 na.rm 选项时发生的一些示例:

    > sum(c(1,NA,2), na.rm = "TRUE")
    [1] 3
    > sum(c(NA,NA,NA), na.rm = "TRUE")
    [1] 0
    > sum(c(1,NaN,2), na.rm = "TRUE")
    [1] 3
    > sum(c(NaN,NaN,NaN), na.rm = "TRUE")
    [1] 0

部分缺失数据的总和为 3 就是我想要的。完全缺失的数据的总和为零不是我想要的。我可以使用其他函数或选项来导致完全缺失的数据返回缺失值吗?

r sum missing-data
1个回答
0
投票

您可以创建自己的辅助函数:

my_sum <- function(x) {
  if (all(is.na(x))) return(NA)
  sum(x, na.rm = TRUE)
}
my_sum(c(1, NA, 2)) ## 3
my_sum(c(NA,NA,NA)) ## NA
my_sum(c(1,NaN,2))  ## 3
my_sum(c(NaN,NaN,NaN)) ## NA
© www.soinside.com 2019 - 2024. All rights reserved.