我不知道我是否是个白痴,但我正在尝试使用 do.call() 将参数传递给 lavaan cfa() 函数。我已经用其他函数成功地做到了这一点,但在这种情况下,参数是混合的——即第一个是字符串,第二个是 data.frame,第三个是字符串。举个简单的例子:
require(lavaan)
#simulating data
t <- rnorm(100,0,.8)
y1 <- t + rnorm(100,0,.2)
y2 <- t + rnorm(100,0,.2)
y3 <- t + rnorm(100,0,.2)
g <- c(0,1)
data <- data.frame(y1,y2,y3,g)
#setting up the lavaan model
model <- 'f1 =~ y1 + y2 + y3'
现在只需使用这些参数就可以了
cfa(model,data,group='g')
但是当我尝试使用 do.call()
args <- list(model=model,data=data,group='g')
do.call(cfa,args)
我收到此错误消息:
Error in as.character(mc[[1L]]) :
cannot coerce type 'closure' to vector of type 'character'
我尝试使用substitute()、引号的任意组合和do.call() 的quote-Argument,但都无济于事。因为我想将它用于某种迷你包,所以我想避免使用任何其他包,而宁愿只使用基本功能。这可能吗?
任何帮助将不胜感激!
最好的,马丁