可能重复:
select some values of a row in a matrix
R subset a data frame with multiple keys
说我有一个清单
>测试
V1 V2 V3
1 1 one uno
2 2 two duos
3 3 three tres
4 4 four cuatro
和向量a<-c("one","three")
。
我想得到列表test
的子集,其中第二列的元素来自向量a
。
所以在这种情况下,答案应该是类似的,
V1 V2 V3
1 1 one uno
2 3 three tres
我想要的东西就行了
test[test[,2]=="one",]
但是有多个值。怎么做?
答案 0 :(得分:4)
您要找的是%in%
(尽管您也可以使用match
和subset
)。见下文。
df <- data.frame(V1=1:4, V2=c("one", "two", "three", "four"), stringsAsFactors = FALSE)
fil <- c("one", "three")
> df
# V1 V2
# 1 1 one
# 2 2 two
# 3 3 three
# 4 4 four
> fil
# [1] "one" "three"
# subset df by column V2 using fil
# using %in%
df[df$V2 %in% fil, ]
# using subset
subset(df, V2 %in% fil)
# using match
df[!is.na(match(df$V2, fil)), ] # (or)
df[which(!is.na(match(df$V2, fil))), ]
# all gives
# V1 V2
# 1 1 one
# 3 3 three