создать новый столбец с накопленной суммой, используя dplyr - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь выполнить следующее упражнение:

data<-tbl_df(data.frame(A=c(6,3,2,4,5,3,3,4),
                        B=c(10,19,12,10,10,9,8,20),
                        C=c("A","B","C","A","A","C","C","B"),
                        D=c("AB","AB","AB","CD","CD","AB","CD","CD")))

data%>%group_by(C,D)%>%
  summarise(Frecuencia=n(),suma=sum(A),cumsum(suma))

Я пытаюсь добавить новый столбец с накопленной суммой столбца suma, но он не работает.

    > data%>%group_by(C,D)%>%
+   summarise(Frecuencia=n(),suma=sum(A),cumsum(suma))
# A tibble: 6 x 5
# Groups:   C [?]
  C     D     Frecuencia  suma `cumsum(suma)`
  <fct> <fct>      <int> <dbl>          <dbl>
1 A     AB             1     6              6
2 A     CD             2     9              9
3 B     AB             1     3              3
4 B     CD             1     4              4
5 C     AB             2     5              5
6 C     CD             1     3              3

Почему это не работает?

Попытка с mutate в этом примере работает, но в моих реальных данных я не могу получить результат.

1 Ответ

0 голосов
/ 28 декабря 2018

Я думаю, что вы не можете создать новый столбец с столбцом, который создается функцией.Кроме того, вы можете использовать функцию mutate и добавить новый столбец, сохраняя существующие столбцы.

Этот код cumsums основан на каждом значении столбца C.Если вы можете предоставить желаемый результат, я могу ответить на ваши вопросы более точно.

Код:

data %>% group_by(C,D) %>%
  summarise(Frecuencia=n(),suma=sum(A)) %>%
  mutate(cumsum(suma))

Вывод:

enter image description here

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