首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R将名称列表转换为Dredge的等式

如何使用R将名称列表转换为Dredge的等式
EN

Stack Overflow用户
提问于 2020-04-03 12:20:32
回答 2查看 30关注 0票数 0

我想自动将名称列表转换为回归方程,以便在MuMIn包中的Dredge命令中使用。

实现以下目标:

代码语言:javascript
复制
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"  

如下所示:

代码语言:javascript
复制
globalmodel <- lm(Sepal.Length ~ Petal.Length + Petal.Width + Species, data = iris,na.action = "na.fail")

从理论上讲,看起来很简单--一堆paste0。我所需要的是一种自动将“”转换为+的“find-replace”的方法。

为什么要这么疯狂?我不断地向我的数据表添加变量/列,然后需要修改疏导方程。此外,这样做将为我提供一个疏导片段,我可以交叉应用于许多不同的未来疏导。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-03 12:24:36

您可以使用reformulate来构造公式

代码语言:javascript
复制
reformulate(names(iris)[-1], names(iris)[1])
#Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width + Species

并在lm中使用它

代码语言:javascript
复制
lm(reformulate(names(iris)[-1],names(iris)[1]),data = iris, na.action = "na.fail")
票数 2
EN

Stack Overflow用户

发布于 2020-04-04 03:21:45

我们可以使用paste,它应该更快

代码语言:javascript
复制
lm(paste0(names(iris)[1], " ~ ", paste(names(iris)[-1],
      collapse= "+ ")), data = iris, na.action = "na.fail")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61005029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档