Я пишу код 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», но есть ли еще здесь Или лучшая практика? Это повлияет на то, какой метод я использую для создания своей матрицы.