Piszę kod R, aby utworzyć kwadratową macierz. Tak więc moje podejście jest:Najlepszy sposób na przydzielenie macierzy w R, NULL vs NA?
- Przeznaczyć matrycę o odpowiednim rozmiarze
- pętli każdego elementu mojej matrycy i wypełnić go z odpowiednią wartością
moje pytanie jest bardzo prosta: to, co jest najlepszy sposób na wstępną alokację tej macierzy? Zatem pory, dwa sposoby:
> x <- matrix(data=NA,nrow=3,ncol=3)
> x
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
[3,] NA NA NA
lub
> 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
ile można zobaczyć, pierwsza jest bardziej zwięzły sposób, niż to drugie. Również ten pierwszy wypełnia macierz z NA, podczas gdy ta ostatnia jest wypełniona wartościami NULL.
Jaki jest "lepszy" sposób na zrobienie tego? W tym przypadku definiuję "lepsze" jako "lepszą wydajność", ponieważ jest to obliczenia statystyczne i ta operacja będzie miała miejsce z dużymi zbiorami danych.
Podczas gdy pierwsza z nich jest bardziej zwięzła, nie jest zapierająca dech w piersiach, łatwiejsza do zrozumienia, więc czuję, że to może pójść w jedną stronę.
Jaka jest różnica między NA i NULL w R? ? NA i? NULL powiedz mi, że "NA" ma długość "1", natomiast NULL ma długość "0" - ale czy jest tu więcej? Lub najlepsza praktyka? Wpłynie to na metodę, której używam do tworzenia mojej macierzy.
Nie pytam, dlaczego chcesz * zapętlić * nad elementami macierzy? Czy możliwe jest użycie zamiast tego operacji wektoryzacji? To powinno być twoje następne pytanie tutaj! :) – Harlan
@Harlan, co jest zasadniczo tym, co dostaję w tym pytaniu tutaj: http://stackoverflow.com/questions/1719447/outer-equivalent-for-non-vector-lists-in-r. Jeśli masz sugestię, chciałbym to usłyszeć! – poundifdef