如何将 R ifelse 函数与 && 函数一起使用?

How to use R ifelse function with && function?

我有以下数据集。我想创建一个列来检查只有 A 具有正数但其余为 0(ifelse 赋值 1 或 0)的行。附件是下面的代码。我希望这些列除最后一行中的“1”外全为 0。目前,我得到的行是“0”。有什么建议吗?

set.seed(111)
A <- rnorm(10,10,2)
B <- c(23,0,0,0,1,2,0,1,2,0)
C <- c(1,1,23,0,0,0,1,2,0,0)
D <- c(0,1,1,23,0,0,0,1,2,0)


df <- data.frame(A,B,C,D)


df$A.only <- ifelse(df$A > 0 && df$B == 0 && df$C == 0 && df$D == 0, 1, 0)

可能重复:Boolean operators && and ||

如果您使用“&”而不是“&&”,您的命令将按预期工作,例如

set.seed(111)
A <- rnorm(10,10,2)
B <- c(23,0,0,0,1,2,0,1,2,0)
C <- c(1,1,23,0,0,0,1,2,0,0)
D <- c(0,1,1,23,0,0,0,1,2,0)


df <- data.frame(A,B,C,D)
df$A.only <- ifelse(df$A > 0 & df$B == 0 & df$C == 0 & df$D == 0, 1, 0)

df
#>            A  B  C  D A.only
#> 1  10.470441 23  1  0      0
#> 2   9.338528  0  1  1      0
#> 3   9.376752  0 23  1      0
#> 4   5.395309  0  0 23      0
#> 5   9.658248  1  0  0      0
#> 6  10.280556  2  0  0      0
#> 7   7.005147  0  1  0      0
#> 8   7.979623  1  2  1      0
#> 9   8.103049  2  0  2      0
#> 10  9.012076  0  0  0      1

reprex package (v2.0.1)

于 2022-04-04 创建