请考虑以下代码:
list <- c("apple", "pear", "orange")
match("apple", list)
返回1
。
现在假设我想在缺少其他元素的情况下返回元素的索引。例如:
match(c("apple", "banana"), list)
将返回
1 NA
我想仅在元素存在时才返回索引。所以它应该返回1
。是否存在&#34;匹配&#34; R?
答案 0 :(得分:2)
你问“R中是否存在”匹配存在“语句?”。是的:is.element
(或更常见于R,%in%
)。
which(is.element(c("apple", "banana"), list))
# [1] 1
您可能需要根据所需的结果交换第一个和第二个元素。例如,在评论中使用@ Codoremifa的问题,比较:
> which(is.element(list, c("apple", "banana","pear")))
[1] 1 2
> which(is.element(c("apple", "banana","pear"), list))
[1] 1 3
这同样适用于@Spacedman的答案,但顺序是相反的。
答案 1 :(得分:1)
如何剥夺NAs?
> na.omit(match(c("apple", "banana"), list) )
[1] 1
attr(,"na.action")
[1] 2
attr(,"class")
[1] "exclude"
忽略属性,这只是1的向量。