У меня есть таблица в длинном формате:
require(data.table)
sampleDT <- data.table(Old = c("A","B","A","B","A","B","A","B")
, New = c("A","A","B","B","A","A","B","B")
, Time = c(1,1,1,1,2,2,2,2)
, value1 = c(1,1,1,1,1,1,1,1)
, value2 = c(0,0,0,0,0,0,0,0))
print(sampleDT)
Old New Time value1 value2
1: A A 1 1 0
2: B A 1 1 0
3: A B 1 1 0
4: B B 1 1 0
5: A A 2 1 0
6: B A 2 1 0
7: A B 2 1 0
8: B B 2 1 0
Я хотел бы преобразовать в массив из 3 измерений.Что-то вроде:
По сути, у нас были бы столбцы «Новое, Старое, Время» в качестве наших трех измерений.И значение для каждой ячейки является выходом некоторого вида функций, чьи входные данные имеют значение «value1, value2».
В этом случае, когда Time = 1
, результат будет:
matrix(data = c(1, 1+0, 0, -0), nrow = 2, ncol = 2, byrow = FALSE)
[,1] [,2]
[1,] 1 0
[2,] 1 0
Как этого добиться?
Важное значение имеют использование памяти и вычислительное время, так как мы работаем с относительно большими наборами данных.