Expression de la matrice provoque une erreur “exige numérique/complexe de la matrice/vecteur arguments”?
ma=diag(3)+t(da)%*%da
R Code ci-dessus, le message d'erreur comme suit:
Error in t(da) %*% da : requires numeric/complex matrix/vector arguments
da
est une matrice se présente comme suit:
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
Quelqu'un pourrait-il m'aider à comprendre l'erreur?
Pouvez-vous montrer qu'un code plus complet extrait? Ce que je veux dire, quelles sont les dimensions de la da? La position de la transposition de la matière? Par exemple, avez-vous essayé décompose le problème et juste faire le premier da %*% t(da) ou t(da) %*% da ??
oui, j'ai testé, les deux fonctionnent pas, même erreur. Aussi, j'ai ajouter des données à ma question. Il est tout simple de la matrice.
Pouvez-vous donner à votre exemple dans une manière que nous pouvons copier/coller? Voir stackoverflow.com/questions/5963269/... comment quelques conseils.
Je seconde @RomanLuštrik ici. Si vous pouvez s'il vous plaît fournir la commande pour créer les données d'entrée ou avec les données, pour gagner du temps, j'ai pu facilement jouer avec elle et d'obtenir une réponse en retour.
Est votre matrice
oui, j'ai testé, les deux fonctionnent pas, même erreur. Aussi, j'ai ajouter des données à ma question. Il est tout simple de la matrice.
Pouvez-vous donner à votre exemple dans une manière que nous pouvons copier/coller? Voir stackoverflow.com/questions/5963269/... comment quelques conseils.
Je seconde @RomanLuštrik ici. Si vous pouvez s'il vous plaît fournir la commande pour créer les données d'entrée ou avec les données, pour gagner du temps, j'ai pu facilement jouer avec elle et d'obtenir une réponse en retour.
Est votre matrice
da
5x6 comme vous l'avez écrit, ou quoi? Veuillez fournir reproductible code et les données que les gens ont demandé.OriginalL'auteur user3505808 | 2014-04-07
Vous devez vous connecter pour publier un commentaire.
Pour obtenir la matrice de multiplication de travail, vous avez besoin de convertir les données.cadre (sans doute c'est ce que da), pour une matrice:
Mais cela donne un 7x7 matrice qui ne peuvent pas être ajoutés à l'3x3 matrice d'identité que vous utilisez. Voulez-vous dire quelque chose comme:
Que vous aimez avoir un coup d'oeil à Une Introduction à R si vous ne vous sentez pas confiant au sujet de la différence entre une matrice et de données.cadre.
Type de données aussi la matière de sorte que dans de nombreux cas, un simple
as.matrix
est insuffisante. Voir la Matrice de la multiplication dans R: nécessite numérique/complexe de la matrice/vecteur arguments par exemple.OriginalL'auteur Miff
Voir aussi cette solution: https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16607
Je ne pouvais pas comprendre ce qui n'allait pas avec le combat, alors j'ai essayé d'exécuter des PCA (fonction prcomp) sur mon jeu de données. R arrêtait pas de me dire que l'entrée n'est pas une matrice, même si lors de la vérification de la classe de l'objet d'entrée, il a dit 'matrice' et le mode 'numérique'. Après le redémarrage de mon IDE (Architecte dans mon cas), tout a été fonctionne bien avec le combat et avec l'ACP.
OriginalL'auteur Steffen J.
Expression de la matrice provoque une erreur “exige numérique/complexe de la matrice/vecteur arguments”?
Cette erreur se produit parce que vous passez une Chaîne de caractères dans le vecteur et Comme une chaîne de caractères ne peut pas être de se multiplier.
la matrice(c('1','2','2','1'), nrow=2,ncol=2,byrow=TRUE)->> J
Pour corriger passer numérique/des arguments complexes, il fonctionne.
matrix(c(1,2,2,1), nrow=2,ncol=2,byrow=TRUE)->> j
ensuite utiliser cette
t = j %*% t(j)
//il permet d'imprimer la multiplication de la matrice de transposition et de la matrice.
print(t)
OriginalL'auteur sparsh bhawsar