R изменить массив, чтобы дважды включить данные из списка матриц в качестве подготовки для keras

Я пытаюсь создать трехмерный массив, который дублирует элементы (копию данных) с одинаковыми строками для обоих. В конечном итоге это должен быть входной массив keras / tensorflow lstm (образцы, временные шаги, функции) временного ряда, где по разным причинам я определил, что мои временные шаги также являются моими функциями, а мои образцы фиксированы (строки).

Некоторые данные:

perhaps <- matrix(sample(c(0:1), 20, replace = TRUE), nrow = 4, 
ncol = 5)
print(perhaps)
perhaps
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    0    1
[2,]    0    0    0    0    1
[3,]    0    1    1    0    1
[4,]    1    0    0    1    1

perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst <- list(perhaps, perhaps) all.equal(perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst[[1]], perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst[[2]]) [1] TRUE #construct array from SOF inquestion:15213463 perhaps_arr <- array( data = do.call(rbind, lapply(perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst, as.vector)), dim = c(dim = c(dim(perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst[[1]])[1], dim(perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst[[1]])[2], dim(perhaps
print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0
lst[[1]])[2])) dim(perhaps_arr) [1] 4 5 5

Обнадеживает.

print(perhaps_arr)
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

, , 4

     [,1] [,2] [,3] [,4] [,5]
[1,]    1    0    0    1    1
[2,]    1    0    0    1    1
[3,]    0    0    1    1    1
[4,]    0    0    1    1    1

, , 5

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    0    1    1
[2,]    0    0    0    1    1
[3,]    0    1    0    0    0
[4,]    0    1    0    0    0

Оппс. Думаю, не очень знаком с массивами. Я ожидал чего-то вроде:

, , 1
#perhaps
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    0    1
[2,]    0    0    0    0    1
[3,]    0    1    1    0    1
[4,]    1    0    0    1    1
, , 2
#perhaps
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    0    1
[2,]    0    0    0    0    1
[3,]    0    1    1    0    1
[4,]    1    0    0    1    1

т.е. одни и те же данные повторяются. А теперь в тупике. Мы очень ценим предложения и разъяснения по поводу того, что здесь происходит.


person Chris    schedule 30.07.2018    source источник
comment
Извини, я гулял с собаками. Больше не повторится.   -  person Chris    schedule 30.07.2018


Ответы (1)


Мы могли бы использовать replicate

n <- 2
replicate(n, perhaps)
#, , 1

#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    0    1    0    1
#[2,]    0    0    0    0    1
#[3,]    0    1    1    0    1
#[4,]    1    0    0    1    1

#, , 2

#     [,1] [,2] [,3] [,4] [,5]
#[1,]    0    0    1    0    1
#[2,]    0    0    0    0    1
#[3,]    0    1    1    0    1
#[4,]    1    0    0    1    1
person akrun    schedule 30.07.2018
comment
my dim = должен был начинаться с dim = c(length(perhaps_2_lst),, но репликация, безусловно, упрощает ведение бухгалтерского учета. Спасибо! - person Chris; 30.07.2018