[英]How can I deal with the Lavaan error: "syntax error in lavaan model syntax"?
[英]How can I add a value from a list or dataframe to the lavaan syntax?
在 lavaan 中指定模型时,可以固定某些变量。 例如,我们可以假设 X(潜在因子)的关系从 y1(观察)到 y5 单调增加。 此语法如下所示:
model <- '
X =~ 1*y1 + 2*y2 + 3*y3 + 4*y4 + 5*y5 '
sem(model ...)
这完美地工作。 但是我想从列表或 df 中添加第二个值。 当我手动添加值时,该语法有效,但如果我尝试在列表中访问它,则无效......
###this works
model <- '
X =~ 0.5*1*y1 + 0.46*2*y2 + 0.45*3*y3 + 0.43*4*y4 + 0.56*5*y5 '
###this doesnt
values <- c(0.5,0.46,0.45,0.43,0.56)
model <- '
X =~ values[1]*1*y1 + values[2]*2*y2 + values[3]*3*y3 + values[4]*4*y4 + values[5]*5*y5 '
我还尝试将值添加到我正在运行模型的数据中,然后处理变量名......但它不起作用。
有人对我可以尝试什么有任何进一步的建议吗?
正如 Terrence Jorgensen 在这里指出的那样,“ lavaan
的模型语法只是一个字符串/向量,因此您可以使用paste()
来组装它或添加存储在其他对象中的数量。”
以下是您在示例中的操作方式:
model <- paste0("X =~ ", values[1], "*1*y1 + ", values[2], "*2*y2 + ", values[3], "*3*y3 + ", values[4], "*4*y4 + ", values[5], "*5*y5")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.