我正在尝试在R中使用incRpca,但是它给了我以下错误 if(ncol(U)!= k)中的错误停止(“length(lambda)!= ncol(U)”): 参数长度为零
我的数据存储在文本文件中。当它尝试使用incRpca替换元素时会产生问题。 incRpca在内部使用QR分解。我想这就是造成问题的原因。
我的数据文件有以下数据
142640 80 39 -970 -27 37 -979 116 47 -970 0
142656 70 49 -970 -18 27 -959 135 38 -980 0
142671 50 58 -950 -36 37 -979 135 57 -990 0
142687 80 39 -940 -18 18 -979 126 47 -970 0
142703 70 49 -960 -36 46 -1000 126 57 -970 0
142718 50 58 -970 -18 37 -989 126 47 -961 0
142734 60 49 -970 -36 27 -979 126 57 -970 0
142750 50 39 -970 -27 18 -989 116 47 -980 0
142765 60 39 -970 -18 37 -989 126 57 -951 0
142781 60 39 -970 -18 27 -979 106 38 -970 0
142796 50 39 -950 -27 37 -969 135 38 -970 0
142812 50 39 -950 -18 37 -979 126 57 -980 0
142828 50 58 -970 -27 37 -989 116 57 -970 0
142843 60 39 -980 -18 18 -949 135 47 -990 0
142859 60 58 -960 -36 27 -1000 135 28 -941 0
142875 70 49 -970 -36 37 -969 126 57 -961 0
142890 50 49 -970 -18 37 -969 126 66 -980 0
142906 70 49 -990 -18 27 -969 126 47 -980 0
142921 50 49 -950 -27 37 -989 126 57 -961 0
142937 70 39 -980 -18 18 -979 126 38 -990 0
142953 50 58 -960 -18 27 -1000 135 38 -980 0
142968 60 49 -960 -18 37 -989 126 47 -951 0
142984 40 39 -970 -18 37 -989 135 47 -990 0
143000 70 39 -960 -18 18 -979 135 38 -980 0
143015 60 39 -960 -18 37 -979 126 28 -980 0
143031 80 49 -960 -27 37 -979 126 47 -970 0
143046 50 58 -980 -18 27 -959 135 47 -970 0
143062 80 39 -960 -36 46 -979 126 38 -961 0
143078 70 58 -970 -9 46 -989 126 38 -970 0
143093 60 29 -950 -18 18 -969 126 57 -980 0
143109 50 49 -960 -27 37 -989 106 47 -980 0
143125 60 39 -970 -18 27 -989 116 38 -980 0
143140 70 58 -980 -27 37 -979 116 47 -970 0
143156 40 49 -970 -18 37 -979 126 47 -970 0
143171 50 29 -960 -18 37 -979 126 47 -970 0
143187 40 49 -990 -36 27 -979 126 47 -990 0
143203 70 49 -940 -27 27 -979 126 38 -980 0
143218 80 29 -950 -9 37 -979 106 47 -941 0
143234 60 68 -970 -36 37 -1000 126 47 -961 0
143250 70 39 -950 -18 27 -989 126 47 -961 0
143265 70 49 -960 -27 27 -959 116 47 -961 0
143281 60 49 -960 -27 46 -1000 126 47 -970 0
143296 70 39 -970 -27 27 -989 126 38 -970 0
143312 60 39 -970 -27 27 -989 126 47 -1000 0
143328 70 39 -960 -18 37 -989 126 47 -980 0
143343 60 39 -960 -27 37 -989 126 47 -980 0
143359 60 39 -970 -18 27 -989 135 38 -961 0
143375 60 39 -960 -27 37 -989 135 38 -990 0
143390 60 49 -950 -9 27 -969 126 47 -970 0
143406 60 39 -980 -27 27 -979 126 47 -980 0
143421 70 49 -960 -9 37 -989 126 38 -980 0
143437 70 39 -970 -18 27 -969 135 38 -970 0
CODE
library(onlinePCA)
library(slam)
mydata = read.table("S01R01.txt")
n <- nrow(mydata)
d <- ncol(mydata)
q<- 3
n0<-11
pca1 <- prcomp(mydata[1:n0,]) # initialization
xbar1 <- pca1$center
pca1 <- list(values1=pca1$sdev[1:q]^2, vectors1=pca1$rotation[,1:q])
for (i in (n0+1):n)
{
xbar1 <- updateMean(xbar1, mydata[i,], i-1)
pca1 <- incRpca(pca1$values1,pca1$vectors1, mydata[i,], i-1, q = q,center=xbar1)
}