我正在尝试在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值,但我不知道如何克服这个问题,我可以注册忽略缺失值的曲线?