如何在函数中将 tabyl() 与两个变量一起使用?
How to use tabyl() with two variables within a function?
我正在制作两个包含大量变量的 table,因此我希望编写使用 janitor 包中的 tabyl() 的函数并映射我感兴趣的变量。
第一个函数工作正常:
cars = datasets::mtcars
first_table = function(variable){
tabyl(variable, show_na = FALSE) %>%
adorn_pct_formatting(digits = 1)
}
first_table(cars$vs)
第二个 table 以几乎相同的方式生成,但应该生成两个变量和行百分比的交叉表,而不是表示单个变量的 table。此代码和输出表示我正在尝试使用我的函数执行的操作:
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 table 以及我在没有上述函数的情况下能够生成的行百分比。
非常感谢任何帮助。
不传递列值,而是传递未加引号的列名并使用 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)
注意:最好将数据集名称也作为参数传递
我正在制作两个包含大量变量的 table,因此我希望编写使用 janitor 包中的 tabyl() 的函数并映射我感兴趣的变量。
第一个函数工作正常:
cars = datasets::mtcars
first_table = function(variable){
tabyl(variable, show_na = FALSE) %>%
adorn_pct_formatting(digits = 1)
}
first_table(cars$vs)
第二个 table 以几乎相同的方式生成,但应该生成两个变量和行百分比的交叉表,而不是表示单个变量的 table。此代码和输出表示我正在尝试使用我的函数执行的操作:
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 table 以及我在没有上述函数的情况下能够生成的行百分比。
非常感谢任何帮助。
不传递列值,而是传递未加引号的列名并使用 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)
注意:最好将数据集名称也作为参数传递