Учитывая следующую матрицу
mat <- matrix(1:16, 4)
set.seed(1)
colnames(mat) <- sample(9, 4, FALSE)
mat
# 3 9 5 6
#[1,] 1 5 9 13
#[2,] 2 6 10 14
#[3,] 3 7 11 15
#[4,] 4 8 12 16
и эту справочную таблицу
(lookup <- data.frame(ID = 1:10,
NAME = LETTERS[1:10], stringsAsFactors = FALSE))
# ID NAME
#1 1 A
#2 2 B
#3 3 C
#4 4 D
#5 5 E
#6 6 F
#7 7 G
#8 8 H
#9 9 I
#10 10 J
, мы можем использовать match(colnames(mat), lookup$ID)
, чтобы найти позиции имен старых столбцов и использовать этот вектор длястолбец подмножества NAME
из справочной таблицы
colnames(mat) <- lookup$NAME[match(colnames(mat), lookup$ID)]
mat
# C I E F
#[1,] 1 5 9 13
#[2,] 2 6 10 14
#[3,] 3 7 11 15
#[4,] 4 8 12 16
Если нам нужно изменить имена строк и столбцов на одинаковые , мы можем использовать `dimnames<-`
следующим образом
dimnames(mat) <- rep(list(lookup$NAME[match(colnames(mat), lookup$ID)]), 2)
Но я не уверен из вопроса, хочет ли это ОП.