У меня есть этот фрейм данных, и я хочу добавить последние два столбца в другой фрейм данных, просуммировав их и сгруппировав по «Full.Name».
# A tibble: 6 x 5
# Groups: authority_dic, Full.Name [6]
authority_dic Full.Name Entity `2019` `2020`
<chr> <chr> <chr> <int> <int>
1 accomplished Derek J. Leathers WERNER ENTERPRISES INC 1 0
2 accomplished Dirk Van de Put MONDELEZ INTERNATIONAL INC 0 1
3 accomplished Eileen P. Drake AEROJET ROCKETDYNE HOLDINGS 1 0
4 accomplished G. Michael Sievert T-MOBILE US INC 0 3
5 accomplished Gary C. Kelly SOUTHWEST AIRLINES 0 1
6 accomplished James C. Fish, Jr. WASTE MANAGEMENT INC 1 0
Это фрейм данных, в который я хочу добавить два столбца: как вы можете видеть, столбец «Full.Name» действует как столбец группировки.
# A tibble: 6 x 3
# Groups: Full.Name [6]
Full.Name `2019` `2020`
<chr> <int> <int>
1 A. Patrick Beharelle 5541 3269
2 Aaron P. Graft 165 200
3 Aaron P. Jagdfeld 4 5
4 Adam H. Schechter 147 421
5 Adam P. Symson 1031 752
6 Adena T. Friedman 1400 1655
Я могу добавить один столбец, используя следующий фрагмент кода, но если я захочу сделать это со вторым, он перезапишет мой существующий, и у меня останется только один добавленный столбец вместо двух.
narc_auth_total <- narc_auth %>% group_by(Full.Name) %>% summarise(`2019_words` = sum(`2019`)) %>% left_join(totaltweetsyear, ., by = "Full.Name")
Вывод этой команды выглядит следующим образом:
# A tibble: 6 x 4
# Groups: Full.Name [6]
Full.Name `2019` `2020` `2019_words`
<chr> <int> <int> <int>
1 A. Patrick Beharelle 5541 3269 88
2 Aaron P. Graft 165 200 2
3 Aaron P. Jagdfeld 4 5 0
4 Adam H. Schechter 147 421 2
5 Adam P. Symson 1031 752 15
6 Adena T. Friedman 1400 1655 21
Я хочу сделать то же самое и добавить столбец 2020_words в тот же фрейм данных. Я просто не могу этого сделать, но это не может быть так сложно сделать. Его также следует суммировать, как и столбец 2019_words. Когда я добавляю «2020» в свою команду, она говорит объект "2020" не найден.
Заранее спасибо.
Если я вас хорошо понял, это решит вашу проблему:
narc_auth_total <-
narc_auth %>%
group_by(Full.Name) %>%
summarise(
`2019_words` = sum(`2019`),
`2020_words` = sum(`2020`)
) %>%
left_join(totaltweetsyear, ., by = "Full.Name")
Вы также можете использовать summarise(across(`2019`:`2020`, sum, .names = "{.col}_words"))
.
Благодарю вас! Чем отличается первое решение? Это эффективнее или быстрее?
Первое решение легче читать новичку; второй более лаконичен, но производительность примерно такая же.
Большое спасибо! Это действительно так просто. Спасибо за ваше время и работу!