Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-包含NA的两个变量的平均值_R_Na - Fatal编程技术网

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

R-包含NA的两个变量的平均值,r,na,R,Na,我是R的新手,我有一个很简单的问题 我想计算两个变量的平均值。如果一个变量缺少值,则具有平均值的向量应取可用变量的值。有什么提示吗?所以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 var1我们可以在cbindin

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


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

所以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

var1我们可以在
cbind
ing两个向量之后使用
rowMeans

out <- rowMeans(cbind(v1, v2), na.rm = TRUE)
out[is.nan(out)] <- NA
out
#[1] 3.0 3.0  NA 2.5 5.0
数据
v1根据@akrun的评论,您需要一个可复制的示例。不过,我希望这对你有所帮助

给定两个变量,可能在数据帧中,也可能不在数据帧中,
ab
ac
,您可以执行以下操作:

> 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

请给出一个小的可复制示例和预期输出。也许,您需要
rowMeans(cbind(v1,v2),na.rm=TRUE)
Jep,就是这样!您知道如何处理两个变量均为NA(缺失)的NaN值吗?对于这种情况,您的期望是什么,即当两个元素均
NA
位于平均值也为NA的相同位置时,请检查我的解决方案。我更新了更好地使用anyNA(ab)
v1 <- c(1, 3, NA, 2, NA)
v2 <- c(5, NA, NA, 3, 5)
> 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