Si vous stockez doubles qui sont 8 octets, 20Kx20K signifie 8 * 20 000 * 20 000/1024/1024 ~ 3 Go de RAM pour tenir la chose en mémoire.
Je ne sais pas combien de RAM vous avez disponible, mais je regarde dans ce que R peut faire pour sérialiser la matrice sur le disque au besoin.
est la matrice clairsemée ou bagués? Can vous faites quelque chose pour diminuer la quantité de mémoire dont vous avez besoin?
Quelle est la taille de l'espace nul pour votre matrice? Quel est le numéro de condition (rapport de la valeur propre la plus grande à la plus petite)? Un grand nombre de conditions peut être une indication de difficultés à résoudre. Une matrice n'a pas besoin d'avoir une ligne ou une colonne nulle pour être presque singulière.
MISE À JOUR:
Sur la base de votre commentaire, je dirais que la RAM est le moindre de vos problèmes. On dirait qu'il est possible de garder toute la matrice en mémoire - si vous pouvez tout résoudre. Vous pouvez adresser toute la matrice. Vous utilisez un système d'exploitation 64 bits. Est-ce votre version de R 64 bits également?
Malheureusement, l'un des sous-produits de SVD est d'obtenir la taille de l'espace nul.
Vous pouvez obtenir la valeur propre minimale de votre matrice en utilisant l'itération de Jacobi. Lanczos pourrait être un bon choix pour obtenir le maximum de valeur propre. Ce serait beaucoup de travail pour les obtenir tous; vous voudrez peut-être juste évaluer les cinq plus petites et les plus grandes.
Chaque fois que je rencontre une erreur avec un logiciel, je le colle immédiatement dans une recherche Google. Au moins, il est réconfortant de savoir que je ne suis pas le premier à l'expérience d'un problème particulier:
http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=Error+in+svd(m)+:+infinite+or+missing+values+in+ « x »
comment puis-je savoir quelle valeur est NA dans mes données? Et j'ai 10 Go de RAM.J'ai utilisé votre code> qui (est. fini (m)) nommé integer (0) pour vérifier s'il y a une valeur finie et il m'a donné un entier appelé (0) – Tweet
qui() identifie les éléments qui sont vrais.Mon code vous dira quels éléments provoquent la Important - notez le point d'exclamation de la négation.! is.finite() – Andrie
cela n'a pas résolu le problème J'ai utilisé votre fonction et elle ne m'a rien dit. :(toute aide? – Tweet