簡體   English   中英

如何使用dplyr :: rename為%。列中的%。%列的名稱添加前綴?

[英]How to prefix column names of data.frame which are !%in% list with dplyr::rename?

我有一個列名列表,我不想更改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_解決這個問題的方法

rename_atsetdiff(colnames(xx),colsNotRename)-colsNotRename

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

rename_if的另一個解決方案

library(dplyr)
xx %>% dplyr::rename_if(!names(.) %in% colsNotRename, ~paste0("unknown.", .))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM