【发布时间】:2021-06-11 15:07:07
【问题描述】:
使用 gtsummary 包,我想创建一个函数,让我使用大量变量输出一系列 2×2 表。我有下面的函数,当使用虚拟数据运行它时,该函数会引发以下错误。有人可以帮忙吗?
Note: Using an external vector in selections is ambiguous.
ℹ Use `all_of(y)` instead of `y` to silence this message.
ℹ See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
This message is displayed once per session.
这是虚拟数据
# download pacman package if not installed, otherwise load it
if(!require(pacman)) install.packages(pacman)
# loads relevant packages using the pacman package
pacman::p_load(gtsummary) # for the twobytwo table
dummy <-data.frame(city = sample(c("SF", "AR", "NYC","MN"),13000,replace = TRUE),
city_2 = sample(c("SF", "AR", "NYC","MN"),13000,replace = TRUE),
year = sample(as.factor(c(1990, 2000, 1999, 1989)),13000,replace = TRUE)
)
这是函数
crosstab_func <- function(data, x, y) {
out <- gtsummary::tbl_cross(data,
row = x,
col = y)
return(out)
}
...这是使用组合函数的函数调用。
result <- combn(names(dummy), 2, function(x)
crosstab_func(dummy, x[1], x[2]), simplify = FALSE)
【问题讨论】:
-
您显示正在加载
data.table但从未使用它,并且您未显示dplyr(或magrittr)但您正在使用%>%。这将有助于查看您的问题真正需要哪些软件包,因为它目前不一致。最后,“它似乎不起作用”也不清楚:如果有警告或错误,包括它们;如果输出不正确,请显示一些输出以及您认为错误的原因。请使用您的样本数据,至少提供您期望的输出组件之一。 -
感谢您发现这一点。希望现在问题更详细,可以回答
-
我不在电脑前编写完整的解决方案。如果您只需要删除有关外部向量选择的注释,请在
tbl_cross()中的 x 和 y 参数周围添加all_of()。 -
@DanielD.Sjoberg 就在眼前!!那是我问题的 2/2,我的朋友,你连胜了!谢谢