[PlotXTabs2是用于绘制类别表变量之间的交叉表比例的函数,其中至少需要3个最小参数
PlotXTabs2(数据,X,y)
此数据帧中的数据作为数据帧,x和y列名称。
我想在一个循环中调用它,其中列名x,y将是来自dataframe colnames()的字符串,类似....]
varscat = colnames(df)
for(i in 1:(length(varscat)-1))
{
for(j in (i+1):length(varscat))
{
tmp <- df[,c(myvars[varscat[i]], myvars[varscat[j]])]
# ...
PlotXTabs2( df, x=myvars[varscat[i]], y=myvars[varscat[j]] )
}
}
我一直在尝试使用eval,do.call进行示例,但均未成功,其中大多数与预期用途是编写函数以接受参数作为字符串的情况有关。
如何获得此结果?
!!
中的rlang
:library(CGPfunctions)
#> Registered S3 methods overwritten by 'lme4':
#> method from
#> cooks.distance.influence.merMod car
#> influence.merMod car
#> dfbeta.influence.merMod car
#> dfbetas.influence.merMod car
library(ggplot2)
out <- lapply(combn(colnames(mpg), 2, simplify = FALSE),
function(z) PlotXTabs2( mpg, !!z[1], !!z[2]) )
out[[3]] ## example plot from the list
由reprex package(v0.3.0)在2020-05-08创建