早上好,
我在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)
但它没有用。
如果您有任何想法或建议来解决我的问题,谢谢
在这种情况下我们可以使用|
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)
由于您的数据采用矩阵格式,您可以:
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
也许这可以做到:
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