我是R的新手,我有一个很简单的问题。
我想从两个变量计算平均值。如果一个变量缺少值,则带有平均值的向量应采用可用变量的值。有什么提示吗?
答案 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的评论,您将需要一个可复制的示例。但是,希望对您有所帮助。
给出两个变量,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