#r
Вопрос:
У меня возникли проблемы с поиском способа очистки, обновите столбец суммы в таблице 1 столбцом цены в таблице 2. Я знаю, что left_join и merge можно использовать для присоединения к столбцу цены, переименования его, а затем удаления, но мне интересно, есть ли более простой способ избежать создания беспорядка.
Я должен заявить, что реальный набор данных сложнее и что столбец «сумма» в таблице 1 необходимо каким-то образом условно обновить на основе таблицы 2.
Таблица 1
Фрукты | Овощ | сумма |
---|---|---|
Apple | брокколи | |
груша | шпинат | |
ананас | морковь |
Таблица 2
Фрукты | Овощ | Цена |
---|---|---|
Apple | брокколи | 10 |
груша | шпинат | 5 |
ананас | морковь | 2 |
Комментарии:
1. Вы пробовали
merge
?merge(table1, table2, by = c('Fruit', 'Vegetable'))
2. @Ronak Shah тогда мне остается переименовать столбец «Цена» в «сумма» и удалить исходный столбец «сумма», который все равно будет пустым. Я бы предпочел избежать этого.
Ответ №1:
Если вы не хотите использовать merge
и обновлять процесс, который вы можете использовать match
.
table1$amount <- table2$price[match(paste(table1$Fruit, table1$Vegetable),
paste(table2$Fruit, table2$Vegetable))]
Комментарии:
1. это работает. Теперь я могу превратить его в функцию и применить к нескольким столбцам. Спасибо!