我需要在列表中搜索一组值(动态)而不使用grep
。
计算后,我得到一组存储在矢量中的值,例如:
vec<-c("146002","1976867")
list_a:
[[1]]
[1] "318484" "146002" "1453825" "1976867" "1591246"
[[2]]
[1] "1059410" "1370072" "787848" "2075616" "456048" "669019" "2151636" "557068" "32948" "595490" "1752826"
我需要回复vec
中出现list_a
元素的次数。
答案 0 :(得分:2)
尝试table
:
vec <- c("146002", "1976867")
a_list <- list(c("318484", "146002", "1453825", "1976867", "1591246"),
c("1059410", "1370072", "787848", "2075616", "456048",
"669019", "2151636", "557068", "32948", "595490", "1752826"))
table(unlist(a_list))[vec]
# 146002 1976867
# 1 1
答案 1 :(得分:1)
使用lapply
拨打%in%
似乎就是这样做的。
> lapply(seq(length(list_a)), function(i) sum(list_a[[i]] %in% vec))
## [[1]]
## [1] 2
## [[2]]
## [1] 0
答案 2 :(得分:0)
您可以尝试使用^
和$
匹配整个字符串。
grep("^123$",c("123","1234","4123","123123","123"))