Meilleure façon d'allouer de la matrice R, NULL vs NA?

Je suis en train d'écrire R code pour créer une matrice carrée. Donc, mon approche est la suivante:

  1. Allouer une matrice de taille correcte
  2. Boucle sur chaque élément de ma matrice et le remplir avec une valeur appropriée

Ma question est simple: quel est le meilleur moyen de pré-allouer de cette matrice? Jusqu'à présent, j'ai deux façons:

> x <- matrix(data=NA,nrow=3,ncol=3)
> x
     [,1] [,2] [,3]
[1,]   NA   NA   NA
[2,]   NA   NA   NA
[3,]   NA   NA   NA

ou

> x <- list()
> length(x) <- 3^2
> dim(x) <- c(3,3)
> x
     [,1] [,2] [,3]
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL

Aussi loin que je peux voir, le premier est plus concis que le dernier. Aussi, l'ancien remplit la matrice avec NAs, tandis que le second est rempli avec des valeurs Null.

Qui est la "meilleure" façon de le faire? Dans ce cas, je suis à la définition de "mieux" en tant que "meilleure performance", parce que c'est l'informatique statistique et de cette opération aura lieu avec de grands ensembles de données.

Alors que le premier est plus concis, il n'est pas à couper le souffle plus facile à comprendre, donc j'ai l'impression que cela pourrait aller de toute façon.

Aussi, quelle est la différence entre NA et NULLE dans R? ?Et NA ?NULL me dire que "NA" a une longueur égale à "1" alors que la valeur NULL a une longueur égale à "0" - mais est-il plus là? Ou de meilleures pratiques? Cela va affecter la méthode que j'utilise pour créer mes matrice.

  • Pas demandé, pourquoi voulez-vous faire une boucle sur les éléments de la matrice? Est-il possible que vous pouvez utiliser un vectorisé opération à la place? Que devrait être votre prochaine question ici! 🙂
  • c'est en gros ce que je veux en venir à cette question ici: stackoverflow.com/questions/1719447/.... Si vous avez des suggestions, je serais ravi de l'entendre!
InformationsquelleAutor poundifdef | 2009-11-16