matrix and table names / dimnames

三世轮回 提交于 2019-11-30 18:32:21

问题


Probably my question is answered somewhere but I have used my searching resources before asking.

I have a sample table in R:

        munic
Gender        Mun1      Mun2 
  female     146980    285797 
  male       140436    270084

When I use dimnames(sample) I get the following:

> dimnames(sample)
$Gender
[1] "female" "male"  

$munic
[1] "Mun1"    "Mun2"

And I want to create one exactly alike.

So I do the following:

Mat<-matrix(c(148470,24721,22829,24777,26137,43169,49613,40406,48337,34296,19492,+
                176712, 27406, 23010, 25487, 27064, 48349, 52140, 44335, 50908,  35814,  18825), nrow=2)

colnames(Mat) <-c("mun_5","mun_1","mun_2","mun_3","mun_4","mun_6","mun_7","mun_8","mun_9","mun_10","mun_11")
rownames(Mat) <- c("Male", "Female")

Mat<-as.table(Mat)

However I cannot make it show the variables' generic title so to say.

I tried many things but not helped.

When I try to get the dimnames I get the following:

> dimnames(Mat)
[[1]]
[1] "Male"   "Female"

[[2]]
 [1] "mun_5"  "mun_1"  "mun_2"  "mun_3"  "mun_4"  "mun_6"  "mun_7"  "mun_8"  "mun_9"  "mun_10" "mun_11"  

Is there any way to add the "unknown" attributes?


回答1:


You need to set the attribute of the object to be a list of proper length.

attr(mat, "dimnames") <- list(Gender = c("Male", "Female"), 
                              munic = c("mun_5","mun_1","mun_2","mun_3","mun_4","mun_6","mun_7","mun_8","mun_9","mun_10","mun_11"))

> mat
        munic
Gender    mun_5  mun_1  mun_2  mun_3  mun_4  mun_6  mun_7  mun_8  mun_9 mun_10 mun_11
  Male   148470  22829  26137  49613  48337  19492  27406  25487  48349  44335  35814
  Female  24721  24777  43169  40406  34296 176712  23010  27064  52140  50908  18825


来源:https://stackoverflow.com/questions/33417674/matrix-and-table-names-dimnames

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!