我有一个函数,它从R中的estimatr包中调用lm_robust函数。我希望能够指定一个变量,以在该变量上聚类标准错误,但是lm_robust函数仅允许在lm_robust的聚类中使用裸露的(未加引号的)变量名选项,而我的函数需要输入的内容是带引号的变量名。
如何获取输入到函数中的变量(例如“ cl”)并将其变成未加引号的变量(例如cl)?
答案 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