我已经准备好了以下数据。帧:
> head(DF)
time x y
33.8351 NA 952.7843
40 1030 NA
40.11 1031 NA
40.22 1039 NA
40.32 1046 NA
40.43 1053 NA
由于NA
的值,optim
给了我以下错误:
Error in optim(par = c(0, 1), min.RSS, data = DF) :
function cannot be evaluated at initial parameters
那我在这里该怎么办?创建一个具有四舍五入值的数据集,以获得最小数量的填充行,并删除其余行?我一无所知。
编辑:我正试图将我的数据相对于具有两个参数的线性模型的残差平方和最小化。
min.RSS <- function(data, par) {
with(data, sum((par[1] + par[2] * x - y)^2))
}
想象一下这样的问题:有一个数据集a,它有有限数量的数据点和一条曲线(更大的数据点集B)。目的是重新缩放曲线,使其与数据集A最佳一致。重新缩放是线性模型,我试图优化线性方程的斜率和y截距。
对数据进行插值。在这里,我们使用末尾注释中所示的DF
。下面我们使用动物园包中的na.locf
。其他插值方案请参见同一软件包中的na.approx
和na.spline
。
library(zoo)
lm(y ~ x, na.locf(DF))
给予:
Call:
lm(formula = y ~ x, data = na.locf(DF))
Coefficients:
(Intercept) x
952.8 0.0
注意:可复制形式的输入DF
为:
Lines <- "time x y
33.8351 NA 952.7843
40 1030 NA
40.11 1031 NA
40.22 1039 NA
40.32 1046 NA
40.43 1053 NA"
DF <- read.table(text = Lines, header = TRUE)