我想自动将名称列表转换为回归方程,以便在MuMIn包中的Dredge命令中使用。
实现以下目标:
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species" 如下所示:
globalmodel <- lm(Sepal.Length ~ Petal.Length + Petal.Width + Species, data = iris,na.action = "na.fail")从理论上讲,看起来很简单--一堆paste0。我所需要的是一种自动将“”转换为+的“find-replace”的方法。
为什么要这么疯狂?我不断地向我的数据表添加变量/列,然后需要修改疏导方程。此外,这样做将为我提供一个疏导片段,我可以交叉应用于许多不同的未来疏导。
发布于 2020-04-03 12:24:36
您可以使用reformulate来构造公式
reformulate(names(iris)[-1], names(iris)[1])
#Sepal.Length ~ Sepal.Width + Petal.Length + Petal.Width + Species并在lm中使用它
lm(reformulate(names(iris)[-1],names(iris)[1]),data = iris, na.action = "na.fail")发布于 2020-04-04 03:21:45
我们可以使用paste,它应该更快
lm(paste0(names(iris)[1], " ~ ", paste(names(iris)[-1],
collapse= "+ ")), data = iris, na.action = "na.fail")https://stackoverflow.com/questions/61005029
复制相似问题