我有以下示例以適合三階多項式到數據:R管件多項式到數據 - 困難數據在數據幀
# rm(list = ls(all = TRUE)) # clear workspace
var2 <- c(32,64,96,118,126,144,152.5,158)
var3 <- c(99.5,104.8,108.5,100,86,64,35.3,15)
fit1 <- lm(var3 ~ poly(var2,3,raw=TRUE))
plot(var2, var3 , pch=19, ylim=c(0,150))
xx <- seq(30,160, length = 20)
lines(xx, predict(fit1, data.frame(var2 = xx)), col="blue")
這工作。不過,我有一些麻煩,適應這種方法我自己的數據在數據幀:
rm(list = ls(all = TRUE))
mydf <- data.frame(var2 = c(32, 64, 96, 118, 126, 144, 152.5, 158), var3 = c(99.5, 104.8, 108.5, 100, 86, 64, 35.3, 15))
fit2 <- lm(mydf$var3 ~ poly(mydf$var2,3,raw=TRUE))
xx <- seq(min(mydf$var2), max(mydf$var2), length = 10)
plot(mydf$var2, mydf$var3 , pch=19, ylim=c(0,150))
lines(xx, predict(fit2, data.frame(var2 = xx)), col="blue")
這產生xy.coords錯誤「錯誤(X,Y):‘X’和‘Y’的長度不同「我在整理時遇到了麻煩。我已經檢查過第二個代碼塊的每個部分的屬性,但仍然找不到問題。我確信我忽略了一些非常明顯的東西。
這完全解決了我的問題。除了我不明白爲什麼其他方式不起作用 - 也就是說,這兩個例子之間有什麼區別。感謝關於raw = TRUE – marcel 2014-09-23 12:32:01
@ marcel的提示:我也想問一下到@BenBolker 。爲什麼mydf $ var3等不起作用? – rnso 2014-09-23 12:33:20