微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

lm()循环输入字符串问题

如何解决lm()循环输入字符串问题

我有一个 for 循环,每次我都使用不同的自变量和因变量来运行线性回归。但是, lm() 函数不起作用,因为我相信我正在尝试输入字符串作为变量。我创建了这个简单的例子来说明问题所在。让我们假设 var1、var2 和 var3 是 dat 数据框中的列名。我无法直接输入列名,所以我必须将它们作为字符串分配给 R 变量。

dat <- read.csv("dat.csv")

x1 <- "var1"
x2 <- "var2"
y <- "var3"

lm(y ~ x1 + x2,data = dat) #error

我知道这里的问题是 R 尝试运行 lm("var3" ~ "var1" + "var2",data = dat)。我需要你的帮助来确定我应该在 y、x1 和 x2 上运行什么函数,这样 lm() 才能正常运行。

解决方法

您可以使用 as.formula 指定字符串变量名称,并将其传递给 lm

x1 <- "var1"
x2 <- "var2"
y <- "var3"

fm <- as.formula(paste(y,"~",x1,"+",x2,sep=""))

lm(fm,data = dat)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。