his*_*eim 3 logic r truthiness
考虑:
a <- c("a", "b", "c")
b <- c("a", "e", "f")
c <- c("a", "h", "i")
> a %in% b %in% c
[1] FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
我希望这可以评估TRUE FALSE FALSE,因为每个向量中的第一个元素是"a".为什么不是这样?
你正在做的是首先这个操作:a %in% b导致TRUE FALSE FALSE.然后你基本上做了链c(TRUE,FALSE,FALSE) %in% c,当然,这将导致所有False.
你可以尝试这个来获得布尔的通用向量(考虑到位置):
a == Reduce(function(u,v) ifelse(u==v, u, F), list(a,b,c))
#[1] TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
如果您想要共同的元素,而不是取决于位置,您可以:
Reduce(intersect, list(a,b,c))
Run Code Online (Sandbox Code Playgroud)