我正在使用 match 来获取元素是否在列表中。例如我的清单是:
c("a","b","h","e"...) and so on
如果我想查看元素 h 是否在列表中,我正在以这种方式使用 match:
if ("h" %in% v){do something}
我怎样才能得到它在列表中找到元素的位置?谢谢
如果你想知道位置使用which
l <- c("a","b","h","e")
which(l=='h')
[1] 3 # It'll give you the position, 'h' is the third element of 'l'
请注意,这l
是一个向量,而不是您提到的列表。
如果您想知道位置,请使用match
:
l <- c("a","b","h","e")
match("h", l)
在这里不会有任何不同,但通常会快得多。
该which
函数会告诉您一个项目在向量中的哪个位置“匹配”。将%in%
返回与其第一个参数长度相同的逻辑向量,并且if
只会查看第一个逻辑值,因此其自身无法正常工作。你可以这样做:
if( any("h" %in& v) ) { do something }
该any
功能允许您“折叠”结果%in%