早上好
我正在用R编码。 我有三个逻辑向量:
1 2 3 4 5 6
a T T F F T F
b F T F F F F
c F F F T F F
我想获得一个向量,告诉我三个向量中的至少一个是否将位置设置为true:
1 2 3 4 5 6
a T T F T T F
我尝试使用过:
Reduce("&&",a,b,c)
但这没用。
如果您有解决我问题的想法或建议,谢谢
答案 0 :(得分:3)
在这种情况下,我们可以使用|
a|b|c
如果有多个向量,请将其放置在list
中,并将Reduce
与|
一起使用
Reduce(`|`, list(a, b, c))
a <- c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE)
b <- c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE)
c <- c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
答案 1 :(得分:2)
由于您的数据采用矩阵格式,因此您可以执行以下操作:
colSums(dat)>0
1 2 3 4 5 6
TRUE TRUE FALSE TRUE TRUE FALSE
数据:
dat=read.table(text=" 1 2 3 4 5 6
a T T F F T F
b F T F F F F
c F F F T F F",strip=T,h=T)
names(dat)=1:6
答案 2 :(得分:1)
也许这也可以做到:
Reduce(`+`,list(a,b,c)) > 0
或更简单地可以是:
a+b+c > 0
输入可以是:
a <- c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE)
b <- c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE)
c <- c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)
输出:
> Reduce(`+`,list(a,b,c)) > 0
[1] TRUE TRUE FALSE TRUE TRUE FALSE