Как добавить имена в строки и столбцы в существующих матрицах R - PullRequest
0 голосов
/ 14 октября 2019

Я работаю над матрицами R и не могу добавить имена в строки (заголовки) и столбцы (регион) с этим набором проблем. Мой набор данных выглядит следующим образом:

  • Кассовые продажи
terminator_1 <- c(66.1, 317.6, 657.2)
terminator_2 <- c(54.7, 261.9, 616.9)
terminator_3 <- c(45.6, 249.5, 547.1)
  • Векторы, которые я использовал для именования региона и названий:
region <- c("UK", "US", "Other")
titles <- c("terminator_1", "terminator_2", "terminator_3")

Я хочу иметь возможность добавлять имена в строки (заголовки) и столбцы (регион) матрицы

Я пытаюсь получить o / p, как показано ниже -

    terminator_1 terminator_2 terminator_3
  US 66.1 54.7 45.6

  UK 317.2 261.9 249.5

  Other 657.2 616.9 547.1

Ответы [ 2 ]

2 голосов
/ 14 октября 2019
sapply(mget(titles), setNames, region)
#      terminator_1 terminator_2 terminator_3
#UK            66.1         54.7         45.6
#US           317.6        261.9        249.5
#Other        657.2        616.9        547.1
2 голосов
/ 14 октября 2019

Вы имеете в виду что-то вроде этого?

mat <- cbind(sapply(ls()[grep("terminator", ls())], get))
rownames(mat) <- region
#      terminator_1 terminator_2 terminator_3
#UK            66.1         54.7         45.6
#US           317.6        261.9        249.5
#Other        657.2        616.9        547.1

Объяснение: Мы используем get для привязки столбцов ко всем numeric векторам, которые содержат строку "terminator" из текущей среды. Затем используйте rownames, чтобы установить имена строк matrix.


Или намного чище и более кратко, используя mget (благодаря @db)

mat <- do.call(cbind, mget(titles))    
rownames(mat) <- region
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...