Я пишу R-код для создания квадратной матрицы. Поэтому мой подход:
- Выделите матрицу нужного размера
- Прокрутите каждый элемент моей матрицы и заполните его соответствующим значением
Мой вопрос очень прост: каков наилучший способ предварительно выделить эту матрицу? До сих пор у меня есть два пути:
> x <- matrix(data=NA,nrow=3,ncol=3)
> x
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
[3,] NA NA NA
или
> 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
Насколько я вижу, первый - более сжатый метод, чем последний. Кроме того, первая заполняет матрицу NA, тогда как последняя заполняется NULL.
Каков "лучший" способ сделать это? В этом случае я определяю "лучше" как "лучшую производительность", потому что это статистические вычисления, и эта операция будет выполняться с большими наборами данных.
В то время как первый более сжатый, это не удивительно легко понять, поэтому я чувствую, что это может пойти в любом случае.
Кроме того, в чем разница между NA и NULL в R?? NA и? NULL скажите мне, что "NA" имеет длину "1", тогда как NULL имеет длину "0" - но есть ли здесь больше? Или лучшая практика? Это повлияет на метод, который я использую для создания моей матрицы.