имена матриц и таблиц / dimnames

Возможно, на мой вопрос где-то есть ответ, но я использовал свои поисковые ресурсы, прежде чем спрашивать.

У меня есть таблица sample в R:

        munic
Gender        Mun1      Mun2 
  female     146980    285797 
  male       140436    270084

Когда я использую dimnames(sample), я получаю следующее:

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

$munic
[1] "Mun1"    "Mun2"

И я хочу создать точно такой же.

Итак, я делаю следующее:

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)

Однако я не могу заставить его показывать общее название переменных, так сказать.

Я пробовал много вещей, но не помогло.

Когда я пытаюсь получить dimnames, я получаю следующее:

> 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"  

Есть ли способ добавить «неизвестные» атрибуты?


person Manos C    schedule 29.10.2015    source источник
comment
Попробуйте lapply(dimnames(sample), function(ll) ll[[1] ) или что-то подобное   -  person smci    schedule 03.09.2016


Ответы (1)


Вам нужно установить атрибут объекта как список правильной длины.

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
person Roman Luštrik    schedule 29.10.2015