объединить строки и сумму в R - PullRequest
1 голос
/ 14 мая 2019

У меня относительно большой набор данных (~ 9000 строк / наблюдений), и я хочу оценить торговые потоки.Для этого у меня есть набор данных, который содержит в своем первом столбце уникальный идентификатор для пар стран и года с указанием соответственно импортера и экспортера, а также года, т.е.

> head(data)
               cp    id_IM    id_EX iso2_a iso2_t Freq value  date_c
1 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    2 20775   2015
2 AD_2015_ES_2015 AD_2015 ES_2015     AE     AM    2 20000   2015
3 AE_2008_AT_2008 AE_2008 AT_2008     AE     AT    1    25   2008
4 AE_2008_EG_2008 AE_2008 EG_2008     AE     EG    1   393   2008
5 AE_2008_GB_2008 AE_2008 GB_2008     AE     GB    2  8896   2008
6 AE_2008_GB_2008 AE_2008 GB_2008     AE     GB    2 59856   2008   2008

. Затем я объединилпары стран, так что у меня есть только одна пара стран на каждый год и суммируется

agg <- zephyr %>% ddply(.
(cp, id_a, id_t, iso2_a, iso2_t, date_a, date_c, Freq), 
function(x) c(value=sum(x$value)))

, хотя я также не уверен, действительно ли R сделал то, что хотел.Мои проблемы, таким образом:

(1) как я могу суммировать столбец значений, но не все другие столбцы, и удалить дубликаты, чтобы у меня была одна пара стран на каждый год со значением суммы всех дубликатов, т.е.

               cp    id_IM    id_EX iso2_a iso2_t Freq value  date_c
1 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    2 20775   2015
2 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    2 20000   2015

становится

               cp    id_IM    id_EX iso2_a iso2_t Freq value date_c
1 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    2   40775  2015

(2) Поскольку я хочу полный торговый поток между страной a и b, мне также необходимо суммировать поток от a до b с потоком от bк а.Другими словами, как я могу сложить

               cp    id_IM    id_EX iso2_a iso2_t Freq value  date_c
1 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    1 20775   2015
2 ES_2015_AD_2015 ES_2015 AD_2015     ES     AD    1 20000   2015

, чтобы эти два наблюдения остались, но их ценность была добавлена:

               cp    id_IM    id_EX iso2_a iso2_t Freq value  date_c
1 AD_2015_ES_2015 AD_2015 ES_2015     AD     ES    1 40775   2015
2 ES_2015_AD_2015 ES_2015 AD_2015     ES     AD    1 40775   2015

Большое спасибо за вашу помощь, потому что я действительно изо всех силс этим, как абсолютный новичок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...