如何组合逻辑向量?

问题描述 投票:2回答:3

早上好,

我在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)

但它没有用。

如果您有任何想法或建议来解决我的问题,谢谢

r concatenation
3个回答
3
投票

在这种情况下我们可以使用|

a|b|c

如果有多个向量,将其放在list中并使用Reduce|

Reduce(`|`, list(a, b, c))

data

a <- c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE)
b <- c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE)
c <- c(FALSE, FALSE, FALSE, TRUE, FALSE, FALSE)

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

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
© www.soinside.com 2019 - 2024. All rights reserved.