我试图用我从实验室得到的一组数据绘制线性回归图。我使用的数据是这个表:

我正在运行的代码是:
tabella_1_final$mg.ml <- gsub(",",".",tabella_1_1$mg.ml)
tabella_1_final$Abs.540.nm <- gsub(",",".",tabella_1_1$Abs.540.nm)
plot(tabella_1_final, type = "l", main = "tabella 1", xlab = "mg/ml", ylab = "Abs 540 nm", panel.first=grid())
par(new=TRUE)
abline(lm(tabella_1_final))运行代码给我以下内容:

但是,当我在Excel中重新绘制图形时,结果却是惊人的不同:

RStudio给出了我无法解决的错误
警告信息:
在abline(lm(tabella_1_final))中:
仅使用6个回归系数中的前两个
有没有人知道如何避免这种情况,并得到正确的线性回归?谢谢。
summary(lm(tabella_1_final))) output:
Call:
lm(formula = tabella_1_final)
Residuals:
ALL 6 residuals are 0: no residual degrees of freedom!
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.833e-18 NaN NaN NaN
Abs.540.nm0.034 1.250e-01 NaN NaN NaN
Abs.540.nm0.06 2.500e-01 NaN NaN NaN
Abs.540.nm0.128 5.000e-01 NaN NaN NaN
Abs.540.nm0.191 7.500e-01 NaN NaN NaN
Abs.540.nm0.268 1.000e+00 NaN NaN NaN
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 5 and 0 DF, p-value: NAstructure(list(mg.ml = c("0", "0.125", "0.25", "0.5", "0.75",
"1"), Abs.540.nm = c("0", "0.034", "0.06", "0.128", "0.191",
"0.268")), row.names = c(NA, 6L), class = "data.frame")编辑:尝试里约包成功地从数据中获得了更多的数据:图片
发布于 2022-04-23 08:09:22
正如用户rawr所建议的那样,问题是我试图将线性回归应用于字符而不是数字。基本上,我让lm()对各种因素做了一个多项式回归!
可能有一行代码可以在不手工操作的情况下将字符转换为数字,但我从零开始重新创建数据。
如果您喜欢我,复制了剪贴板的数据,使用dput(head( you change ))打印出数据格式所用的向量,然后手工修改它们。
mg.ml = c(0, 0.125, 0.25, 0.5, 0.75, 1)
Abs.540.nm = c(0, 0.034, 0.06, 0.128, 0.191, 0.268)
tabella <- data.frame(mg.ml, Abs.540.nm)
plot(tabella, type = "p", main = "tabella 1", xlab = "mg/ml", ylab = "Abs 540 nm")
grid()
abline(lm(Abs.540.nm ~ mg.ml, data = tabella), col="red")非常感谢我的教授帮助我理解了我的错误!
https://stackoverflow.com/questions/71975014
复制相似问题