相关疑难解决方法(0)

用聚合物混合na.omit和na.pass?

我有一个包含产品原型测试数据的数据集.并非所有测试都在所有批次上运行,并且并非所有测试都使用相同的样本大小执行.为了说明,请考虑这种情况:

> test <- data.frame(name = rep(c("A", "B", "C"), each = 4),
  var1 = rep(c(1:3, NA), 3),
  var2 = 1:12,
  var3 = c(rep(NA, 4), 1:8))

> test
   name var1 var2 var3
1     A    1    1   NA
2     A    2    2   NA
3     A    3    3   NA
4     A   NA    4   NA
5     B    1    5    1
6     B    2    6    2
7     B    3    7    3
8     B   NA    8    4
9     C    1    9    5
10    C    2   10 …
Run Code Online (Sandbox Code Playgroud)

aggregate r summary plyr

6
推荐指数
1
解决办法
9541
查看次数

如果所有值均为NA,则计算总和或返回NA的有效方法

在模拟过程中,我创建了多个具有1,000,000个变量的数据集。但是,这些变量的某些值是NA,在某些情况下甚至所有值都是NA。现在,我想计算变量的所有值的总和,但要获取NA所有值是否为NA

common sum(x, na.rm=T)或or 的问题sum(na.omit(x))是,如果所有值均为,则返回0 NA。因此,我编写了自己的函数,该函数NA以预期的方式处理:

sumna <- function(x) {
  sumna <- NULL
  return(ifelse(all(is.na(x)), NA, sum(na.omit(x))))
}
Run Code Online (Sandbox Code Playgroud)

但是,该实现相当慢。

因此,我正在寻找一个实现或预先实现的函数,该函数求和向量的值,如果所有值均为,则省略NA并返回。NANA

提前谢谢了!

r sum na

3
推荐指数
2
解决办法
113
查看次数

标签 统计

r ×2

aggregate ×1

na ×1

plyr ×1

sum ×1

summary ×1