我是一个R语言新手,所以我可能命名不对;-)我想绘制三个不同线性模型的结果。为此,我循环了我的列名,我将其保存在一个带引号的向量中。
lambdas <- c("lambda_of_antibody1", "lambda2", "lambda3")
字符串
在我的循环中,我计算线性模型,必须使用get()
,这样我才能访问列名。然后我使用sjPlot::plot_model
绘制回归线。然而,我得到错误消息“一些指定的terms
在模型中找不到。可能拼写错误?"。
for (i in seq_along(lambdas)) {
fit <- lm(sd_cplx ~ get(lambdas[i]), data = df_dpcrsum)
plt <- sjPlot::plot_model(
fit,
type = "pred",
terms = lambdas[i]
) +
geom_point(
data = df_dpcrsum,
aes(
x = get(lambdas[i]),
y = sd_cplx
)
)
plots[[i]] <- plt
}
型
我的问题是,我如何正确地访问我的嵌套框架的列?这可能很简单,但我找不到解决方案。
我意识到模型中术语的名字是get(xmldas [i])而不是实际的列名。所以我试图使用names(fit$coefficients)
重命名系数。但我得到了同样的错误消息。可能有一种方法可以使用enquo()
,但我担心我错过了对函数背后更深层次的理解。所以,我会非常感谢您的任何帮助!请让我知道我是否提供了足够的信息,或者我是否错过了一些重要的细节。
下面是我的一个例子:
> head(df)
# A tibble: 6 × 5
lambda_of_antibody1 mean_cplx sd_cplx lambda2 lambda3
<dbl> <dbl> <dbl> <dbl> <dbl>
1 0.05 0.538 8.14 0.0525 0.0526
2 0.1 0.442 16.7 0.11 0.111
3 0.15 0.696 25.4 0.173 0.176
4 0.2 0.0541 35.1 0.24 0.248
5 0.25 0.479 45.5 0.312 0.328
6 0.3 0.358 55.9 0.39 0.417
型
2条答案
按热度按时间ibps3vxo1#
由于您没有提供任何示例数据,因此无法验证。请尝试以下操作(假设您的框架名为df):
字符串
k0pti3hp2#
找到解决方案:
字符串
感谢您的输入,YBS:-)