繁体   English   中英

如何将列表或数据框中的值添加到 lavaan 语法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM