R将标题分配给三维数组

时间:2014-05-02 11:45:17

标签: r

我有一个三维数组,myarray

myarray<- array(dim=c(4,6,5))

和矩阵,mymatrix

     > mymatrix
        Bias  TS PC   H    F     FAR
 red     1.0 1.0  1 1.0 0.00 0.00000
 orange  1.0 1.0  1 1.0 0.00 0.00000
 yellow  0.5 0.5  1 0.5 0.00 0.00000
 medium  1.0 1.0  1 1.0 0.25 0.00037

现在我想将mymatrix指定为myarray中的元素之一。所以我正在做以下

> myarray[,,1]<-mymatrix
> myarray[,,1]
     [,1] [,2] [,3] [,4] [,5]    [,6]
[1,]  1.0  1.0    1  1.0 0.00 0.00000
[2,]  1.0  1.0    1  1.0 0.00 0.00000
[3,]  0.5  0.5    1  0.5 0.00 0.00000
[4,]  1.0  1.0    1  1.0 0.25 0.00037

但我的问题是我想要将列和行名称分配给数组(来自我的矩阵)。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以在阵列上显式设置行名和列名。请注意,它们跨越阵列的所有切片:

空数组(请注意,您确实应该将代码剪切为可接受的)

> myarray=array(dim=c(4,6,10))
> myarray[,,1]
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]   NA   NA   NA   NA   NA   NA
[2,]   NA   NA   NA   NA   NA   NA
[3,]   NA   NA   NA   NA   NA   NA
[4,]   NA   NA   NA   NA   NA   NA

将mymatrix分配给切片:

> myarray[,,1]=mymatrix
> myarray[,,1]
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    5    0    0    1    1    2
[2,]   10   10   11    1   11    0
[3,]    0    8   11    2    2    8
[4,]    9    6    2    5    3    0

设置行名和列名:

> rownames(myarray)=rownames(mymatrix)
> colnames(myarray)=colnames(mymatrix)
> myarray[,,1]
       Bias TS PC H  F FAR
red       5  0  0 1  1   2
orange   10 10 11 1 11   0
yellow    0  8 11 2  2   8
medium    9  6  2 5  3   0

请注意,所有切片现在都具有相同的行名和列名:

> myarray[,,2]
       Bias TS PC  H  F FAR
red      NA NA NA NA NA  NA
orange   NA NA NA NA NA  NA
yellow   NA NA NA NA NA  NA
medium   NA NA NA NA NA  NA