R 如何将tabyl()与函数中的两个变量一起使用?
我正在制作两个包含大量变量的表,因此我希望编写使用来自看门人包的tabyl()的函数,并映射我感兴趣的变量 第一个功能工作正常:R 如何将tabyl()与函数中的两个变量一起使用?,r,function,janitor,R,Function,Janitor,我正在制作两个包含大量变量的表,因此我希望编写使用来自看门人包的tabyl()的函数,并映射我感兴趣的变量 第一个功能工作正常: cars = datasets::mtcars first_table = function(variable){ tabyl(variable, show_na = FALSE) %>% adorn_pct_formatting(digits = 1) } first_table(cars$vs) 第二个表的生成方式几乎相同,
cars = datasets::mtcars
first_table = function(variable){
tabyl(variable, show_na = FALSE) %>%
adorn_pct_formatting(digits = 1)
}
first_table(cars$vs)
第二个表的生成方式几乎相同,但应该生成两个变量和行百分比的交叉表,而不是表示单个变量的表。此代码和输出表示我试图对函数执行的操作:
cars %>%
tabyl(vs, am, show_na = FALSE) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns()
但是,当我将其作为函数编写时,tabyl()函数似乎只想识别第一个变量:
second_table = function(variable1, variable2){
tabyl(variable1, variable2, show_na = FALSE) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns()
}
second_table(cars$vs, cars$am)
我不太确定问题出在哪里,我想知道如何编辑这个函数,以提供一个2x2表格,其中包含行百分比,我可以在没有上述函数的情况下生成该表格
非常感谢您的帮助。不要传递列值,而是传递不带引号的列名,并使用curly_curly操作符进行计算。
{}
second_table <- function(dat, variable1, variable2){
dat %>%
tabyl({{variable1}}, {{variable2}}, show_na = FALSE) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns()
}
注意:最好将数据集名称也作为参数传递这正是我想要的-谢谢!
second_table(cars, vs, am)
# vs 0 1
# 0 66.7% (12) 33.3% (6)
# 1 50.0% (7) 50.0% (7)