R中的合并向量仅保留特定值

R中的合并向量仅保留特定值,r,vector,merge,logical-operators,R,Vector,Merge,Logical Operators,我希望合并两个向量,同时保留相同维度的结果向量,但如果满足特定条件,则覆盖值 在这种情况下,我有两个T和F值的向量。比方说 A <- c(T F T F) B <- c(T T F F) A使用布尔运算怎么样?要保留TRUE值,您可能需要执行以下操作 > !!(A+B) [1] TRUE TRUE TRUE FALSE 或保留FALSE值 > !!(A*B) [1] TRUE FALSE FALSE FALSE 但是,这可能不是您真正想要的,因为此解决方案无

我希望合并两个向量,同时保留相同维度的结果向量,但如果满足特定条件,则覆盖值

在这种情况下,我有两个T和F值的向量。比方说

A <- c(T F T F)
B <- c(T T F F)

A使用布尔运算怎么样?要保留
TRUE
值,您可能需要执行以下操作

> !!(A+B)
[1]  TRUE  TRUE  TRUE FALSE
或保留
FALSE

> !!(A*B)
[1]  TRUE FALSE FALSE FALSE
但是,这可能不是您真正想要的,因为此解决方案无法处理非布尔类型



请注意,MattTyers的答案甚至比我的答案更简单,因为它不需要将二进制数转换为十进制数就可以进行布尔运算。

使用布尔运算怎么样?要保留
TRUE
值,您可能需要执行以下操作

> !!(A+B)
[1]  TRUE  TRUE  TRUE FALSE
或保留
FALSE

> !!(A*B)
[1]  TRUE FALSE FALSE FALSE
但是,这可能不是您真正想要的,因为此解决方案无法处理非布尔类型



请注意,MattTyers的答案甚至比我的答案更简单,因为它不需要将二进制数转换为十进制数就可以进行布尔运算。

比这更简单,只是
A | B

比这更简单,只是
A | B

及其对应的
A&B
。谢谢,非常好。看来掌握逻辑运算符会非常有用。我想我知道这个周末我要开始做什么了。和它相对应的
A&B
。谢谢,非常好。看来掌握逻辑运算符会非常有用。我想我知道这个周末要做什么了。谢谢。这是可行的,但我不知道为什么。我试着(A+B)看看会发生什么,发现它做的事情几乎相同,但输出0和1。使用一个NOT语句(!)它首先将所有0和1转换为布尔值,然后否定它们。还有这个!!按照你的建议,我得到了我想要的。为什么需要“!”来产生布尔语?希望我没有占用你太多时间。只是好奇。谢谢@特里贾姆斯。“为什么”,或者更确切地说是“如何”,这个问题实际上并不是那个么容易回答。但是,由于任何数字(0除外)都被认为是
真的
,当你否定一个像这样的数字时
!1
它实际上涉及布尔运算,其结果只能是布尔运算。然后执行,例如
!!1
,否定
!1
FALSE
),因此返回
TRUE
。谢谢您。这实际上是有道理的。顺便说一句,这很聪明,使用
逻辑运算符将数值强制回logical.concure。我要找的词。谢谢。这是可行的,但我不知道为什么。我试着(A+B)看看会发生什么,发现它做的事情几乎相同,但输出0和1。使用一个NOT语句(!)它首先将所有0和1转换为布尔值,然后否定它们。还有这个!!按照你的建议,我得到了我想要的。为什么需要“!”来产生布尔语?希望我没有占用你太多时间。只是好奇。谢谢@特里贾姆斯。“为什么”,或者更确切地说是“如何”,这个问题实际上并不是那个么容易回答。但是,由于任何数字(0除外)都被认为是
真的
,当你否定一个像这样的数字时
!1
它实际上涉及布尔运算,其结果只能是布尔运算。然后执行,例如
!!1
,否定
!1
FALSE
),因此返回
TRUE
。谢谢您。这实际上是有道理的。顺便说一句,这很聪明,使用
逻辑运算符将数值强制回logical.concure。我一直在寻找的那个词。