我有一个列名列表,不想更改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 _
寻找解决此问题的方法答案 0 :(得分:0)
将rename_at
与setdiff(colnames(xx),colsNotRename)
或-colsNotRename
一起使用
library(dplyr)
xx %>% rename_at(vars(-colsNotRename), ~paste0('unknown.',.))
答案 1 :(得分:0)
另一个带有rename_if的解决方案
library(dplyr)
xx %>% dplyr::rename_if(!names(.) %in% colsNotRename, ~paste0("unknown.", .))