0
l <- c("a","b","c")

m是一个 5x2 的数据框。C11:5,C2a:e:

m <- data.frame(C1 = 1:5, C2 = letters[1:5], stringsAsFactors = FALSE)

我想找到n,它只包含那些行mm$C2所述的值中的行l

结果n是 3x2 使得 C2 是a:c,即

  C1 C2
1  1  a
2  2  b
3  3  c
4

1 回答 1

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行。

于 2012-10-18T08:53:08.540 回答