当所有值都缺失时如何使用 min?
How to use min when all values are missing?
我希望像这样保存一系列列的最小值:
x1 x2 x3
2 1 4
1 NA 3
NA NA NA
使用这样的代码
min_val <- min(x1, x2, x3, na.rm=TRUE)
我想取回这个
1
1
NA
但我一直遇到无限循环。我在下面包含了一些示例代码。我怎样才能让它告诉我第三行是 NA 而不是执行失败?
谢谢!
x1 <- c(1,2,NA)
x2 <- c(2,NA,NA)
x3 <- c(3,5,NA)
test <- cbind(x1, x2, x3)
head(test)
for (i in 1:nrow(test)){
min_val[i] <- min(test[i,], na.rm = TRUE)
}
head(min_val)
这个怎么样:
min_val <- function(x) {
apply(x, 1, function(x) if(all(is.na(x))) {NA} else {min(x, na.rm = T)})
}
min_val(test)
[1] 1 2 NA
我希望像这样保存一系列列的最小值:
x1 x2 x3
2 1 4
1 NA 3
NA NA NA
使用这样的代码
min_val <- min(x1, x2, x3, na.rm=TRUE)
我想取回这个
1
1
NA
但我一直遇到无限循环。我在下面包含了一些示例代码。我怎样才能让它告诉我第三行是 NA 而不是执行失败?
谢谢!
x1 <- c(1,2,NA)
x2 <- c(2,NA,NA)
x3 <- c(3,5,NA)
test <- cbind(x1, x2, x3)
head(test)
for (i in 1:nrow(test)){
min_val[i] <- min(test[i,], na.rm = TRUE)
}
head(min_val)
这个怎么样:
min_val <- function(x) {
apply(x, 1, function(x) if(all(is.na(x))) {NA} else {min(x, na.rm = T)})
}
min_val(test)
[1] 1 2 NA