R-包含NA的两个变量的均值

时间:2020-01-11 21:00:10

标签: r na

我是R的新手,我有一个很简单的问题。

我想从两个变量计算平均值。如果一个变量缺少值,则带有平均值的向量应采用可用变量的值。有什么提示吗?

3 个答案:

答案 0 :(得分:2)

R mean函数可以通过设置na.rm = TRUE.

自动处理此行为
var1 <- 4
var2 <- 2

mean(c(var1, var2), na.rm = TRUE)
# 3

var1 <- 2
var2 <- NA
mean(c(var1, var2), na.rm = TRUE)
# 2

答案 1 :(得分:0)

rowMeans设置两个向量之后,我们可以使用cbind

out <- rowMeans(cbind(v1, v2), na.rm = TRUE)
out[is.nan(out)] <- NA
out
#[1] 3.0 3.0  NA 2.5 5.0

或者我们可以使用replace_na(也可以匹配NaN

library(dplyr)
replace_na(rowMeans(cbind(v1, v2), na.rm = TRUE), NA)

数据

v1 <- c(1, 3, NA, 2, NA)
v2 <- c(5, NA, NA, 3, 5)

答案 2 :(得分:0)

根据@akrun的评论,您将需要一个可复制的示例。但是,希望对您有所帮助。

给出两个变量,abac可以在数据帧中,也可以不在数据帧中,您可以这样做:

> ab
[1]  1  3  4  6  7 NA

> ac
[1]  3  4  5  6  7  8 10

> ifelse(sum(is.na(ab)) >= 1, mean(ac), mean(ab))
[1] 6.142857