Я хочу переименовать некоторые столбцы в фрейме данных на основе другого фрейма данных. У меня есть 2 кадра данных, один с кодами в качестве имен столбцов и второй с перечнем кодов и строкой.
df = as.data.frame(matrix(NA, 3, 60)) colnames(df) = c(paste0(sprintf("S%s",seq(10,19))), paste0(sprintf("R%s",seq(20,50))), paste0(sprintf("F%s",seq(51,69))))
namelist = as.data.frame(c(paste0(sprintf("B%s",seq(10,19))), paste0(sprintf("R%s",seq(20,50))), paste0(sprintf("A%s",seq(51,69)))))
colnames(namelist) = "Code"
myFun <- function(n = 5000) {
a <- do.call(paste0, replicate(5, sample(LETTERS, n, TRUE), FALSE))
paste0(a, sprintf("%04d", sample(9999, n, TRUE)), sample(LETTERS, n, TRUE))}
namelist$Name = myFun(nrow(namelist))
Теперь я хочу переименовать имена столбцов в df, которые перечислены в списке имен. Их новое имя должно быть строкой, стоящей за соответствующим кодом в списке имен.
Результат должен быть таким: Сохранение имен столбцов, которые не перечислены в виде кода в списке имен, и замена R20-R50 на строку.
Мне нужно решение, которое действительно собирает код в один фрагмент, потому что я мог бы также объединить коды в столбцы, например R40 + R41, которые не следует переименовывать.
Есть идеи, как это сделать?