2017-07-17 68 views
3

我希望我發表在正確的章節! 我學習MPCA方法,我有任何問題,因爲我是新手,只想學習自我。有數據集,其中變量的值是scale(sc)和名義var(cat) 當我執行分析時,我得到了錯誤。 我用library rTensorR中的多重線性主成分

library("openxlsx") 
dat=read.xlsx("C:/Users/admin/Desktop/corr.xlsx") 
View(dat) 
mpca(dat, ranks=c(10,10), max_iter = 25, tol = 1e-05) 

Error: is(tnsr, "Tensor") is not TRUE 

我是怎麼了?如何正確使用此方法?

dat

回答

3

的問題是,該函數mpca()只接受tnsr類型的對象作爲輸入。 你必須轉換你的對象dat以包含matrix格式之前的數據和tensor格式之後的數據。

您當前的格式如下:

class(dat) 
[1] "data.frame" 

所以,你可以用這種方式變換:

dat <- as.matrix(dat) 
dat <- as.tensor(dat) 
class(dat) 
[1] "Tensor" 
attr(,"package") 
[1] "rTensor" 

然後你就可以使用mpca()功能!

希望這會有所幫助!

+0

我必須輸入什麼參數? – schoolboy

+0

@schoolboy因爲函數mpca中的參數等級的長度必須是dat @ num_modes-1。 在你的情況下,參數等級的向量必須只有一個元素 –

+0

我認爲你喜歡你,但:mpca(dat,rows = 10,max_iter = 25,tol = 1e-05) | ====== | 4% list_mat [[i]]中的錯誤:下標越界。這個錯誤是什麼意思,以及如何解決它。 Thx爲你的幫助:) – schoolboy