Как добавить префикс имен столбцов data.frame, которые являются!% В списке%, с помощью dplyr :: rename? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть список имен столбцов, которые я НЕ хочу менять colsNotRename.Все остальные столбцы я хочу префикс.Способ сделать это в BaseR, например:

xx <- data.frame(A = 1:3, B = 3:5, Unknown = c("A","B","C"))
colsNotRename <- c("A","B")
cols <- !colnames(xx) %in% colsNotRename
colnames(xx)[cols] <- paste0("unknown.", colnames(xx)[cols])

или:

xx <- setNames(xx, c(colnames(xx)[!cols] , paste0("unknown.", colnames(xx)[cols])))

Я ищу решение этой проблемы с помощью dplyr :: rename_

Ответы [ 2 ]

0 голосов
/ 13 мая 2019

другое решение с rename_if

library(dplyr)
xx %>% dplyr::rename_if(!names(.) %in% colsNotRename, ~paste0("unknown.", .))
0 голосов
/ 13 мая 2019

Используйте rename_at с setdiff(colnames(xx),colsNotRename) или -colsNotRename

library(dplyr)
xx %>% rename_at(vars(-colsNotRename), ~paste0('unknown.',.))
...