【问题标题】:R_Assigning headers to an three dimentional arrayR将标题分配给三维数组
【发布时间】:2014-05-02 11:45:16
【问题描述】:

我有一个三维数组,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

但我的问题是我也希望将列名和行名分配给数组(来自我的矩阵)。我该怎么做?

【问题讨论】:

    标签: r


    【解决方案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
    

    【讨论】:

    • 谢谢@Spacedman。这就是我要的。但我应该在问之前尝试一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2011-12-24
    • 2015-07-06
    • 1970-01-01
    相关资源
    最近更新 更多