Ответ 1
Попробуйте следующее:
ar <- array(someData, c(365, 6, 4));
ar[304,5,2] <- 204;
где someData
может быть
someData <- rep(0, 365*6*4);
или даже лучше, может быть
someData <- rep(NaN, 365*6*4);
Я пытаюсь настроить 3D-матрицу в R. Я думаю, это просто. Однако пока я не нашел решения. Предположим, мы хотим создать матрицу 365x6x4. Также ключевой формой меня является то, как я могу изменить одну запись в матрице. Пусть говорят, что мы хотим присвоить значение 204 элементу [304,5,2]. Я высоко ценю ваш ответ!
спасибо! лучше, F
Попробуйте следующее:
ar <- array(someData, c(365, 6, 4));
ar[304,5,2] <- 204;
где someData
может быть
someData <- rep(0, 365*6*4);
или даже лучше, может быть
someData <- rep(NaN, 365*6*4);
Матрица представляет собой специальный двумерный случай массива. (Цитирование из справки для ?matrix
).
Итак, вам нужно array
:
x <- array(rep(1, 365*5*4), dim=c(365, 5, 4))
str(x)
num [1:365, 1:5, 1:4] 1 1 1 1 1 1 1 1 1 1 ...
Задайте определенное значение:
x[305, 5, 2] <- 204
Печать одного фрагмента:
x[305, , ]
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 1 1 1 1
[4,] 1 1 1 1
[5,] 1 204 1 1
Попробуйте этот простой пример (сделали пример довольно маленьким, чтобы он понял, что происходит - я объясню ниже, как настроить его для вашего точного вопроса!)...
m = array(1:60, dim=c(3,4,5))
m[2,1,5]
[1] 50
m[2,1,5] = -50
m[2,1,5]
[1] -50
Введите m
, чтобы увидеть весь 3D-массив:)
В вашем примере вы должны установить свой начальный массив как m = array(NA, dim=c(365,6,4))
(это будет заполнять его NA для начала - у вас есть данные, чтобы заполнить его?) И назначение m[304,5,2] = 204
, из курс:)