частный случай слияния в R - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь решить это:

Например:

Склад

       id amount size
1 cymbals      5   24
2  snares      3   10
3    tom1      2   19

Входящий

      id amount size
1 snares      2   15

Результирующий

       id amount size
1 cymbals      5   24
2  snares      5   15
3    tom1      2   19

Я новичок в R, поэтому я искал самый элегантный / разборчивый способ получения «результата» (яне касается производительности).В результате получится: взять каждый входящий товар, зациклить на складе, если он существует: добавить суммы и заменить размер новым размером;если его не существует, добавьте его.

1 Ответ

0 голосов
/ 14 октября 2018

С помощью dplyr мы можем связать два кадра данных, сгруппировать их по id и вычислить sum из amount и принять значение last size, так что если значение присутствует вincoming он возьмет его оттуда, иначе он примет значение size из warehouse кадра данных.

library(dplyr)
bind_rows(warehouse, incoming) %>%
          group_by(id) %>%
          summarise(amount = sum(amount), 
                    size = last(size))


#   id      amount  size
#  <chr>    <int> <int>
#1 cymbals      5    24
#2 snares       5    15
#3 tom1         2    19
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...