在R fda包中注册曲线时如何处理NA值

时间:2015-05-22 11:12:21

标签: r matrix na

我正在尝试在R fda包中注册一条曲线,但由于数据中的NA值,我收到以下错误消息:

if(cosangle< 1e-07){:缺少值需要TRUE / FALSE

时出错

对象data2是dim 36,12的矩阵,如下所示:

 A    B    C    D    E    F    G    H    I    J    K    L

 5.3  NA   3.9  3.4  NA   3.8  NA   6.1  5.0  NA   3.3  5.4

 NA   NA   NA   NA   NA   NA   NA   NA   1.0  NA   NA   NA

 1.2  NA   2.1  NA   NA   NA   NA   3.5  NA   NA   NA   NA

其中NA值在整个矩阵中是随机的

我使用的脚本如下:

date<-seq(1, by=1, length=365)

rng<-range(date)
nbasisw <- 15
norder <- 5
basisw <- create.bspline.basis(rng, nbasisw, norder)

sites <- 1:12
nsites <- length(sites)

tfine <- seq(1, 18, len = 101)
tmat <- tfine %*% matrix(1, 1, nsites)

hgtffd <- smooth.basis(date, as.matrix(data2), fdPar.obj)$fd

y0fd <- deriv(mean.fd(hgtffd), 1)
yfd <- deriv(hgtffd[sites], 1)

y0vec <- eval.fd(tfine, y0fd)
yvec <- eval.fd(tfine, yfd)

coef0 <- matrix(0, nbasisw, length(sites))
Wfd0 <- fd(coef0, basisw)

lambda <- 1
WfdPar <- fdPar(Wfd0, 2, lambda)

reglist <- register.fd(y0fd, yfd, WfdPar)

最后一行是我收到错误消息的时候 我知道原因是矩阵中的NA值,但我不知道如何克服这个问题,我可以注册忽略缺失值的曲线?

0 个答案:

没有答案