Вложенный ifelse
в порядке:
set.seed(2)
df <- data.frame(a = rnorm(10), b = rnorm(10))
df$c <- ifelse(df$a > 0, "a+", ifelse(df$b > 0, "b+", "b-"))
head(df)
# a b c
#1 -0.89691455 0.41765075 b+
#2 0.18484918 0.98175278 a+
#3 1.58784533 -0.39269536 a+
#4 -1.13037567 -1.03966898 b-
#5 -0.08025176 1.78222896 b+
#6 0.13242028 -2.31106908 a+
Однако, возможно, проблема в Praxis_Dat[, 22:24] == "Pass"
.Не понятно, что это значит?По крайней мере, если вы не предоставляете никаких данных.
Аналогичный код здесь работает так, как ожидал бы I , но каков ваш ожидаемый результат в этом случае?
res <- ifelse(df[,1:2] > 0, "a+", ifelse(df$b > 0, "b+", "b-"))
head(res)
# a b
# [1,] "b+" "a+"
# [2,] "a+" "a+"
# [3,] "a+" "b-"
# [4,] "b-" "b-"
# [5,] "b+" "a+"
# [6,] "a+" "b-"
Конечно, вы должны быть осторожны, когда назначаете этот матричный вывод столбцу:
df$d <- ifelse(df[,1:2] > 0, "a+", ifelse(df$b > 0, "b+", "b-"))
head(df)
# a b c d.a d.b
#1 -0.89691455 0.4176508 b+ b+ a+
#2 0.18484918 0.9817528 a+ a+ a+
#3 1.58784533 -0.3926954 a+ a+ b-
#4 -1.13037567 -1.0396690 b- b- b-
#5 -0.08025176 1.7822290 b+ b+ a+
#6 0.13242028 -2.3110691 a+ a+ b-