Управлять вектором и фреймом данных в R - PullRequest
2 голосов
/ 04 марта 2020
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'

I wi sh, чтобы сопоставить значения в 'colB' с значениями в list1, используя 'colA' в качестве ключа, так как это выглядит

enter image description here

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Вы также можете использовать 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
1 голос
/ 04 марта 2020

Возможно, нам нужно 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...