Конвертировать матрицу в 3d массив в R - PullRequest
0 голосов
/ 22 мая 2018

У меня есть набор данных, состоящий из 2000 последовательностей из 3 чисел в диапазоне от 1 до 50 (например, (2,11,35) или (8,20,49)).Данные находятся в файле .csv, который R считывает как фрейм данных - 2000 obs.из 3 переменных, все целые числа.

Я хочу преобразовать данные в трехмерный массив «кадров», где каждый кадр состоит из последних 25 последовательностей.Модель keras с 2d слоями конвоя затем научится предсказывать 26-ю последовательность.

Я попытался загрузить набор данных, используя as.matrix(read.csv()), а затем

x<-dataset[1:25,]
for (i in 2:(nrow(dataset)-24)) {
x<-rbind(x, dataset[i:(i+24),])
}
x<-array_reshape(x,c(1976,25,3,1))

Данные, похоже, получаются справильная форма, но когда я сравниваю ее с оригиналом, я вижу, что все номера не в порядке.Использование dim() также не помогло.

Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 22 мая 2018

Я не уверен, что полностью понимаю вопрос, но не работает ли список?Порядок элементов должен оставаться неизменным.

results = list()
results[[1]]<-dataset[1:25,]

for(i in 2:(nrow(dataset)-24)){
   results[[i]] = dataset[i:(i+24),]
}
...