Как объединить два фрейма данных с количеством элементов в R? - PullRequest
1 голос
/ 02 марта 2020

Я работаю в R, используя фрейм данных, содержащий количество элементов (которые являются неотрицательными целыми числами). Вот пример двух фреймов данных, называемых BASKET1 и BASKET2. В обоих случаях элемент появляется во фрейме данных только в том случае, если его количество не менее одного. Элементы отображаются в каждом фрейме данных в алфавитном порядке.

BASKET1
    Vegetable  Quantity
1     Carrots         3
2   Cucumbers         2
3    Parsnips         5
4      Celery         1
5      Onions        12

BASKET2
    Vegetable  Quantity
1     Carrots        10
2      Onions         6
3     Rhubarb         2

Я пытаюсь создать функцию, которая объединяет две корзины элементов в одну корзину, суммируя все элементы в обеих корзинах. Это своего рода операция слияния, за исключением того, что я действительно хочу суммировать количества в корзинах. Получить список предметов с помощью функции unique довольно просто:

VEGETABLES <- unique(BASKET1$Vegetable, BASKET2$Vegetable);

Мне сложнее найти простой способ получить вектор величин, соответствующий этому вектору предметов, чтобы построить фрейм данных объединенных корзин. Я думаю, что есть способ сделать это, используя какой-то простой поисковый запрос, но все методы, которые я попробовал, приводят к громоздкому коду.


Вопрос: Что такое Самый простой способ найти вектор величин, соответствующих объединенному вектору предметов?

1 Ответ

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

Мы можем использовать rbind, чтобы связать два набора данных, и aggregate, чтобы получить sum из «Количество» по «Овощной»

aggregate(Quantity ~ Vegetable, rbind(BASKET1,BASKET2), sum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...