在 R 中操作向量和数据帧

Manipulate Vector and Data Frame in R

list1=c(1,6,3,4,4,5)
data=data.frame("colA" = c(1:6),
"colB"=c(4,3,1,8,9,8))

我有 'list1' 和 'data'

我希望使用 'colA' 作为键将 'colB' 中的值与 list1 中的值匹配,所以它看起来像

也许,我们需要match

data.frame(list1, colB = data$colB[match(list1, data$colA)])
#  list1 colB
#1     1    4
#2     6    8
#3     3    1
#4     4    8
#5     4    8
#6     5    9

您也可以使用 merge,这是您的标签之一。

merge(data.frame(list1=list1), data, by.x=c("list1"), by.y="colA")

  list1 colB
1     1    4
2     3    1
3     4    8
4     4    8
5     5    9
6     6    8

或者如果您不关心列名:

merge(data.frame(colA=list1), data)
  colA colB
1    1    4
2    3    1
3    4    8
4    4    8
5    5    9
6    6    8