R tidyverse to sumif на основе функции - PullRequest
0 голосов
/ 26 марта 2020

У меня есть df как это:

df1

var1 var2 text
1    0    A 
1    1    A
0    1    B

Так что я хотел бы сгенерировать два новых, основанных на функции sumif, как это:

df2

text var1   var2
A    2      1
B    0      1
tot  2      4

И ...

df3

text var1   var2
A    100    50
B    0      50

Так что первый основан на счетчиках, а второй - на столбце%

Thx.

1 Ответ

2 голосов
/ 26 марта 2020

Для получения df2:

library(dplyr)

df1 %>% group_by(text) %>% summarise_all(sum) %>% janitor::adorn_totals('row')

#  text var1 var2
#     A    2    1
#     B    0    1
# Total    2    2

df3

df1 %>% group_by(text) %>% summarise_all(sum) %>% mutate_at(-1, ~./sum(.) * 100)

#  text   var1  var2
#  <fct> <dbl> <dbl>
#1 A       100    50
#2 B         0    50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...