Добавьте несколько столбцов с одной и той же группой и суммой

У меня есть этот фрейм данных, и я хочу добавить последние два столбца в другой фрейм данных, просуммировав их и сгруппировав по «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" не найден.

Заранее спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
13
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я вас хорошо понял, это решит вашу проблему:

narc_auth_total <- 
  narc_auth %>% 
  group_by(Full.Name) %>% 
  summarise(
    `2019_words` = sum(`2019`),
    `2020_words` = sum(`2020`)
  ) %>% 
  left_join(totaltweetsyear, ., by = "Full.Name")

Большое спасибо! Это действительно так просто. Спасибо за ваше время и работу!

Yeezus 18.05.2022 00:25

Вы также можете использовать summarise(across(`2019`:`2020`, sum, .names = "{.col}_words")).

Martin Gal 18.05.2022 00:28

Благодарю вас! Чем отличается первое решение? Это эффективнее или быстрее?

Yeezus 18.05.2022 00:45

Первое решение легче читать новичку; второй более лаконичен, но производительность примерно такая же.

user2332849 18.05.2022 00:52

Другие вопросы по теме