假设我有一个类似以下的数据框
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)
我应该使用什么操作来做 == 的子集,不适用于矢量。
我可以使用dplyr
或vanilla R
。
答案 0 :(得分:1)
尝试使用基础R中的match
:
with(df, B[match(sel, A)])
#[1] 5 1 5 5