2014-04-07 33 views
10
ma=diag(3)+t(da)%*%da 

Yukarıdaki kod gibidir ve hata mesajı aşağıdaki gibidir:Matris ifadesi, "sayısal/karmaşık matris/vektör argümanları gerektirir" hatasına neden oluyor?

Error in t(da) %*% da : requires numeric/complex matrix/vector arguments 

da bir matristir şöyle görünür:

V45  V46   V47   V48   V49   V50   V51  
1 0.461727059 2.357732985 -1.536932071 -1.34425710 0.893541975 -0.0676913075 -0.86532231 
2 0.253022555 1.524473647 -0.588911138 -1.65207275 -0.072255170 -0.5212951533 -1.43686625 
3 0.824678362 1.497001189 0.335973892 -0.84027799 0.275289411 -0.2921928001 -0.16277595 
4 0.854530787 2.258305198 0.107346531 -1.69194014 -0.841572928 -1.1153931009 -1.939461341 
5 1.148286984 -0.232390389 -0.498465734 -0.45728816 0.352889082 0.9868844505 -0.68401129 

herkes hatasını anlamaya yardım eder misin

? matris çarpım işe almak için
Teşekkür

+0

Daha eksiksiz bir kod snippet'i gösterebilir misiniz? Demek istediğim, da'nın boyutları nedir? Transpozisyonun pozisyonu mu? Örneğin, sorunu çözmeyi denediniz mi ve sadece ilk da% *% t (da) veya t (da)% *% da ?? –

+0

@NathanielPayne evet, her ikisi de çalışmıyor, aynı hatayı test ettim. Ayrıca, soruma veri ekliyorum. Bu sadece basit bir matris. – user3505808

+3

Örneğinizi kopyalayıp yapıştırabileceğimiz bir şekilde verebilir misiniz? Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible- birkaç örnek nasıl göründüğüne bakın. –

cevap

22

, bir matrise (da ne muhtemelen budur) data.frame dönüştürmek gerekir:

t(da)%*%as.matrix(da) 

Ama bu 7x7 matrisi veren can' Kullanmakta olduğunuz 3x3 kimlik matrisine eklenmelidir. Eğer böyle bir şey ifade ediyor mu:

ma=diag(7)+t(da)%*%as.matrix(da) 

Sen bir matris ve data.frame arasındaki farkı merak emin hissediyorum yoksa An Introduction to R de bir göz atmak isteyebilirsiniz.

+0

Muhtemelen şunu eklemelisiniz ki, t() otomatik olarak bir data.frame'i matrise dönüştürür. – Miff

0

da bu çözümü bakınız: https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16607

Ben mücadele nesi olduğunu çözemedim, bu yüzden veri kümesi üzerinde PCA (işlev prcomp) çalıştı. R, giriş nesnesinin sınıfını kontrol ederken, 'matris' ve 'sayısal' modunu yazmış olsa da, girdinin matris olmadığını söylemeye devam etti. IDE'mi yeniden başlattıktan sonra (Mimar benim durumumda), her şey savaşla ve PCA ile iyi çalışıyordu.

İlgili konular