我编写了以下代码以将数组声明为数据帧:
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]"
但是,它当然不起作用。 非常感谢您的帮助!
答案 0 :(得分:0)
来自?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
答案 1 :(得分:0)
我需要从一个尺寸为(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)