Как скопировать точное совпадение из данных B в данные A в r

Допустим, у меня есть два кадра данных A и B.

 products    price
   apple      3.0
   orange     2.5
   avocado    4.0
   banana     2.5
   blueberry  1.5

В

 products Color  price
 banana   Yellow  NA
 Apple    Red     NA
 Avocado  Green   NA
 Apricot  Yellow  NA

Мой вопрос заключается в том, какой самый быстрый способ извлечь цены на товары из данных A и сохранить их в данных B, поэтому результат будет таким

В

products Color  price
  banana   Yellow  2.5
  Apple    Red     3.0
  Avocado  Green   4.0
  Apricot  Yellow  NA

1 ответ

Если единственной разницей между продуктами в B и A является заглавная буква, то вы можете использовать следующее:

A = data.frame(products = c("apple", "orange", "avocado", "banana", "blueberry"),
           price = c(3.0, 2.5, 4.0, 2.5, 1.5))

B = data.frame(products = c("banana", "Apple", "Avocado", "Apricot"),
           color = c("Yellow", "Red", "Green", "Yellow"),
           price = c(NA, NA, NA, NA))

for (i in 1:nrow(B)) {
   B$price[i] =  A$price[match(tolower(B$products[i]), A$products)]
}
Другие вопросы по тегам