R 改进tabyls的重复生产和合并

R 改进tabyls的重复生产和合并,r,dplyr,R,Dplyr,请帮我改进代码。下面的代码正是我想要的——生成一个包含频率和百分比的表格。然而,我毫不怀疑上半场会更有效率。注意:All组不仅仅是我分别展示的四个州 All.Q1<-data2 %>% tabyl(`Q1 - Position`, show_na=F) %>% adorn_pct_formatting() NSW.Q1<-data2 %>% filter(State=="NSW") %>% tabyl(`Q1 - Position`, show_na=F)

请帮我改进代码。下面的代码正是我想要的——生成一个包含频率和百分比的表格。然而,我毫不怀疑上半场会更有效率。注意:All组不仅仅是我分别展示的四个州

All.Q1<-data2 %>% tabyl(`Q1 - Position`, show_na=F) %>%  adorn_pct_formatting()
NSW.Q1<-data2 %>% filter(State=="NSW") %>% tabyl(`Q1 - Position`, show_na=F) %>%  adorn_pct_formatting()
QLD.Q1<-data2 %>% filter(State=="QLD") %>% tabyl(`Q1 - Position`, show_na=F) %>%  adorn_pct_formatting()
VIC.Q1<-data2 %>% filter(State=="VIC") %>% tabyl(`Q1 - Position`, show_na=F) %>%  adorn_pct_formatting()
WA.Q1<-data2 %>% filter(State=="WA") %>% tabyl(`Q1 - Position`, show_na=F) %>%  adorn_pct_formatting()

tab.Q1<-Reduce(function(...) merge(..., all = TRUE, by = "Q1 - Position"),
       list(All.Q1, NSW.Q1, QLD.Q1, VIC.Q1, WA.Q1))

tab.Q1 %>% kable(digits=2, col.names = c("Position", col.au)) %>% kable_styling(bootstrap_options = c("striped", "hover"))
All.Q1%tabyl(`Q1-Position`,show\u na=F)%%>%adorn\u pct\u formatting()
NSW.Q1%筛选器(State==“NSW”)%%>%tabyl(`Q1-Position`,show\u na=F)%%>%adorn\u pct\u formatting()
QLD.Q1%filter(State==“QLD”)%%>%tabyl(`Q1-Position`,show\u na=F)%%>%adorn\u pct\u formatting()
VIC.Q1%筛选器(State==“VIC”)%%>%tabyl(`Q1-Position`,show\u na=F)%%>%adorn\u pct\u formatting()
WA.Q1%筛选器(State==“WA”)%%>%tabyl(`Q1-Position`,show\u na=F)%%>%adorn\u pct\u formatting()
表1%kable(数字=2,列名称=c(“位置”,列au))%>%kable\u样式(引导选项=c(“带条纹”,“悬停”))

如果没有基础数据,很难判断这是否正确,试一试,如果这不是您需要的,请调用
dput(data2)
和c+p将控制台的结果输入到您的问题中,正如@Ronak Shah所建议的,这是非常标准的做法!祝你好运,我希望这个解决方案就是你想要的:

data2 %>% 
mutate(State = as.character("All Australia")) %>% 
bind_rows(., data2 %>% mutate(State = as.character(State))) %>% 
group_by(State) %>% 
tabyl(`Q1 - Position`, show_na = FALSE) %>% 
adorn_pct_formatting() %>% 
ungroup() %>% 
kable(digits = 2, col.names = c("Position", col.au)) %>% 
kable_styling(bootstrap_options = c("striped", "hover"))

您可以使用
dput(data2)
添加数据吗?还包括您正在使用的所有非基本软件包。@Lyndon Walker请投票并接受我的答案,如果您认为它有用的话。