l <- c("a","b","c")
m
是一个5x2数据帧。 C1
为1:5
,C2
为a:e
:
m <- data.frame(C1 = 1:5, C2 = letters[1:5], stringsAsFactors = FALSE)
我想找到n
,其中只包含m
行,其中m$C2
位于l
结果n
为3x2,C2为a:c
,即
C1 C2
1 1 a
2 2 b
3 3 c
答案 0 :(得分:3)
一种选择是手动与%in%
进行匹配:
m <- data.frame(C1 = 1:5, C2 = letters[1:5], stringsAsFactors = FALSE)
l <- c("a","b","c")
with(m, m[C2 %in% l, ])
R> with(m, m[C2 %in% l, ])
C1 C2
1 1 a
2 2 b
3 3 c
或者通过match()
功能:
R> m[with(m, match(C2, l, nomatch = FALSE)), ]
C1 C2
1 1 a
2 2 b
3 3 c
需要nomatch
参数来摆脱NA
行。