我尝试使用基于以下代码的自定义数据集创建简单的线性回归:
data(iris)
head(iris)
fit1 <- lm(Sepal.Length ~ Petal.Width, data = iris)
summary(fit1)
library(ggplot2)
ggplot(iris, aes(x = Petal.Width, y = Sepal.Length)) +
geom_point() +
stat_smooth(method = "lm", col = "red")
生成:
要为自定义数据集修改此代码,其中y轴值为100,200,300,x轴值为1,2,3我使用:
> rg <- data.frame("y"=integer() , "x" = integer(), stringsAsFactors=FALSE)
> rg[nrow(rg) + 1, ] <- c(100 , 1)
> rg[nrow(rg) + 1, ] <- c(200 , 2)
> rg[nrow(rg) + 1, ] <- c(300 , 3)
> fit1 <- lm(rg.x ~ rg.y, data = rg)
但我收到错误:
Error in eval(expr, envir, enclos) : object 'rg.x' not found
但rg.x
确实存在:
rg
y x
1 100 1
2 200 2
3 300 3
我没有正确设置数据框吗?
更新:
感谢@PinkFluffyUnicorn
> rg <- data.frame("y"=integer() , "x" = integer(), stringsAsFactors=FALSE)
> rg[nrow(rg) + 1, ] <- c(100 , 1)
> rg[nrow(rg) + 1, ] <- c(200 , 2)
> rg[nrow(rg) + 1, ] <- c(300 , 3)
> fit1 <-lm(x~y,data=rg)
>
> ggplot(rg, aes(x = x, y = y)) +
+ geom_point() +
+ stat_smooth(method = "lm", col = "red")
答案 0 :(得分:1)
尝试
fit1 <-lm(x~y,data=rg)
您无法使用.
如果您想获取一列的值,则应使用$符号,例如rg$x