简体   繁体   English

基于函数的 R tidyverse 到 sumif

[英]R tidyverse to sumif based on function

I have a df like this:我有一个这样的 df:

df1 df1

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

So I would like to generate a two new ones based on a sumif function like this:所以我想基于像这样的 sumif 函数生成两个新的:

df2 df2

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

And...和...

df3 df3

text var1   var2
A    100    50
B    0      50

So the first one based on counts and the second one on column %所以第一个基于计数,第二个基于列 %

Thx.谢谢。

To get df2 :要获得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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM