如何使用替换从数据框中选择行

时间:2016-02-08 17:51:31

标签: r dataframe

我的数据框定义如下:

t1 <- data.frame(x=c("A","B","C"),y=c(5,7,9))

> t1
  x y
1 A 5
2 B 7
3 C 9

和选秀权的载体:

picks <- c("B","C","B")

如何从数据框中选择此顺序获取这些替换行? 我想要:

x  y
B  7
C  9
B  7

我试过

> t1[t1$x %in% picks,]

  x y
2 B 7
3 C 9

以及其他几种匹配,grep,等等的组合,无法得到我想要的东西。看起来应该很容易,但我找不到路径。

2 个答案:

答案 0 :(得分:2)

或者您可以使用data.table

执行正确的加入
library(data.table)
picks <- data.table(x = picks)
setDT(t1)[picks, on = "x"]
#   x y
#1: B 7
#2: C 9
#3: B 7

默认情况下,合并的data.table根据x中的picks进行排序。

答案 1 :(得分:1)

我们也可以使用

setNames(t1$y, t1$x)[picks]
#B C B 
#7 9 7 
相关问题