R:基于向量的子行

时间:2017-06-14 20:08:16

标签: r dataframe match subset

假设我有一个类似以下的数据框

A    B
PHX  5
DEN  3
DAL  1
HOU  2

df = data.frame(A = c("PHX", "DEN", "DAL", "HOU"), 
                B = c(5, 3, 1, 2))

然后我有一个类似下面的矢量

sel = c("PHX", "DAL", "PHX", "PHX")

然后,我希望在使用sel进行子集化后,将 df 子集化以获取B的值。我的结果应该是这样的矢量:

res = c(5, 1, 5, 5)

我应该使用什么操作来做 == 的子集,不适用于矢量。

我可以使用dplyrvanilla R

1 个答案:

答案 0 :(得分:1)

尝试使用基础R中的match

with(df, B[match(sel, A)])

#[1] 5 1 5 5