在R中如何将参数作为字符串传递给诸如plotXtabs2之类的函数?

问题描述 投票:0回答:1

[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进行示例,但均未成功,其中大多数与预期用途是编写函数以接受参数作为字符串的情况有关。

如何获得此结果?

r function eval
1个回答
1
投票
您可以使用!!中的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创建

© www.soinside.com 2019 - 2024. All rights reserved.