在函数中使用带引号的变量并将其裸露

时间:2019-02-22 17:02:06

标签: r function

我有一个函数,它从R中的estimatr包中调用lm_robust函数。我希望能够指定一个变量,以在该变量上聚类标准错误,但是lm_robust函数仅允许在lm_robust的聚类中使用裸露的(未加引号的)变量名选项,而我的函数需要输入的内容是带引号的变量名。

如何获取输入到函数中的变量(例如“ cl”)并将其变成未加引号的变量(例如cl)?

1 个答案:

答案 0 :(得分:2)

as.name中使用do.call

library(estimatr)
example(lm_robust)
## ... snip ...

clname <- "clusterID"
do.call("lm_robust", list(y ~ x + z, data = quote(dat), weights = quote(w),
   clusters = as.name(clname)))

给予:

              Estimate Std. Error    t value     Pr(>|t|)  CI Lower  CI Upper
(Intercept)  3.4261621  0.2009692 17.0481986 1.332761e-05  2.908643  3.943681
x           -0.6734741  0.1351184 -4.9843254 4.300590e-03 -1.022076 -0.324872
z            0.5850340  0.9436175  0.6199907 5.566933e-01 -1.689652  2.859720
                  DF
(Intercept) 4.970885
x           4.940162
z           6.396615