как двигаться внутри массива, преобразованного в as.data.frame? - PullRequest
0 голосов
/ 07 октября 2018

Я написал следующий код для объявления массива как фрейма данных:

b=as.data.frame(array(0,dim=c(NF,29,1,T+1),
dimnames=list(NULL,c(…..varnames))))

Теперь я не могу перемещаться внутри массива .. например, если мне нужно показать все матрицыв следующей позиции массива [,,1,1], что мне нужно написать?Я пробовал код вроде:

b$[].1.1
b$,1.1
b[,,1,1]"

, но, конечно, он не работает.Большое спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Мне нужно создать фрейм данных, начиная с массива, размерность которого (2,3,1,3):

0   0   0   0   0   0   0   0   0  
0   0   0   0   0   0   0   0   0

Следовательно, мне нужен вывод:

debt loan stock debt loan stock debt loan stock
  0    0    0    0    0     0     0    0    0
  0    0    0    0    0     0     0    0    0

Правильно ли следующий код?

b=array(0, dim=c(3,3,1,4), dimnames=list(NULL,c("debt","loan","stock")))
output=as.data.frame(b)
0 голосов
/ 07 октября 2018

из ?as.data.frame:

Массивы могут быть преобразованы в кадры данных.Одномерные массивы рассматриваются как векторы, а двумерные массивы - как матрицы.Массивы с более чем двумя измерениями преобразуются в матрицы путем «выравнивания» всех измерений после первого и создания подходящих меток столбцов.

array1 <- array(1:8,dim = c(2,2,2),dimnames = split(paste0(rep(letters[1:2],each=3),1:3),1:3))
# , , 3 = a3
# 
#     2
# 1    a2 b2
#   a1  1  3
#   b1  2  4
# 
# , , 3 = b3
# 
#     2
# 1    a2 b2
#   a1  5  7
#   b1  6  8
# 

df1    <- as.data.frame(array1)
#    a2.a3 b2.a3 a2.b3 b2.b3
# a1     1     3     5     7
# b1     2     4     6     8

df1$b2.a3
# [1] 3 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...