大家好! 这是我的代码:
f1 <- function(x){
if(x > 10){
z = 1
} else if (x < 10 && x >0) {
z=2
} else {
z=3}
return(z)
}
r <- c(NA,NA,NA,NA,1:96)
s <- numeric(100)
for(i in 1:length(s)){
s[i] <- f1(r)
}
错误:
if(x&gt; 10){:缺少值需要TRUE / FALSE时出错 另外:警告信息: 在if(x> 10){: 条件的长度> 1,只使用第一个元素
我需要什么: 我有一个数据集'r'。我需要创建一个函数或循环来判断我的数据集。然后将结果放在's'。
's'是这样的事情:
3 3 3 3 2 2 2 2 2 2 2 2 2 3 1 1 1 1 1 1....
答案 0 :(得分:0)
您可以事先替换NA,即
r[is.na(r)] <- -1
ifelse(r > 10, 1, ifelse(r <10 & r > 0, 2, 3))
#[1] 3 3 3 3 2 2 2 2 2 2 2 2 2 3 1 1 1 1 1 1 1 1 1 1...
#or include !is.na(r) in every condition, i.e.
ifelse(r > 10 & !is.na(r), 1, ifelse(r <10 & r > 0 & !is.na(r), 2, 3))
#[1] 3 3 3 3 2 2 2 2 2 2 2 2 2 3 1 1 1 1 1 1 1 1 1 1...