Как суммировать значения из нескольких строк переменной, связанной идентификатором домохозяйства - PullRequest
0 голосов
/ 24 января 2020

У меня есть следующий тиббл (но на самом деле с гораздо большим количеством строк): он называется education_tibble

library(tidyverse)
education_tibble <- tibble(
   ghousecode = c(1011027, 1011017, 1011021, 1011019, 1011025, 1011017,
                  1011016, 1011021, 1011017, 1011019),
     hhc_educ = c(2, 0, 11, 10, 14, 4, 8, 16, 0, 9))


ghousecode hhc_educ
        <dbl>    <dbl>
 1    1011027        2
 2    1011017        0
 3    1011021       11
 4    1011019       10
 5    1011025       14
 6    1011017        4
 7    1011016        8
 8    1011021       16
 9    1011017        0
10    1011019        9

Я пытаюсь сложить hhc_edu c так, чтобы у каждого кода ghouse был соответствующий "итог" hhc_edu c». Я изо всех сил, чтобы сделать это, и не уверен, что делать. Я использовал Tidyverse, поэтому изучал пути в основном в dplyr. Вот мой код:

education_tibble %>%
  group_by(ghousecode, add = TRUE) 
  summarize(total_educ = sum(hhc_educ))

Проблема в том, что этот код по какой-то причине генерирует только одно значение, а не значение total_edu c для каждой группы. По сути, я в конечном итоге ищу новый тиббл, в котором каждый ghouse-код будет в одной строке с суммой всех значений hhc_edu c рядом с ним. Любая помощь приветствуется! Спасибо!

1 Ответ

2 голосов
/ 24 января 2020

Вы пропустили %>% Я думаю.

library(tidyverse)

#data
education_tibble <- tibble(
   ghousecode = c(1011027, 1011017, 1011021, 1011019, 1011025, 1011017,
                  1011016, 1011021, 1011017, 1011019),
     hhc_educ = c(2, 0, 11, 10, 14, 4, 8, 16, 0, 9))


# grouped count
education_tibble %>%
  group_by(ghousecode, add = TRUE)  %>% 
  summarise(total_educ = sum(hhc_educ))

Производит:

# A tibble: 6 x 2
  ghousecode total_educ
       <dbl>      <dbl>
1    1011016          8
2    1011017          4
3    1011019         19
4    1011021         27
5    1011025         14
6    1011027          2
...