R语言 通过仅删除少数列中的相同字符来重命名列名[duplicate]

ljo96ir5  于 2023-01-28  发布在  其他
关注(0)|答案(3)|浏览(110)
    • 此问题在此处已有答案**:

Rename columns by pattern in R(1个答案)
Rename columns based on pattern R(1个答案)
dplyr: Renaming multiples columns by regular expression(2个答案)
6天前关闭。
我有一个数据集,其中包含多个以"sum of"开头的列(例如,sum of Whites)。我想知道如何通过删除"* sum of *"来重命名那些列(例如,sum of Whites--〉Whites)。需要注意的是,我的数据框中的某些列只有一个单词(例如,Blacks)名称,因此仅需要对少数列进行重命名!

fcg9iug3

fcg9iug31#

在底数R中,可以将gsubnames一起使用:

df <- data.frame(col1 = 1:5,
                 sum_of1a = 1:5,
                 sum_of2a = 1:5,
                 another_column = 1:5)

names(df) <- gsub("sum_of", "", names(df))

或者使用dplyr

df <- dplyr::rename_with(df, ~gsub("sum_of", "", .x))

输出(两种方法):

#   col1 1a 2a another_column
# 1    1  1  1              1
# 2    2  2  2              2
# 3    3  3  3              3
# 4    4  4  4              4
# 5    5  5  5              5
gtlvzcf8

gtlvzcf82#

你可以用rename_with作为-

library(dplyr)
library(stringr)

dat %>% rename_with(~str_remove(., 'sum of'), starts_with('sum of'))

#   Whites  Browns Blacks
#1       1       5      6
#2       2       4      7
#3       3       3      8
#4       4       2      9
#5       5       1     10
    • 数据**
dat <- data.frame(`sum of Whites` = 1:5, `sum of Browns` = 5:1, 
                  `Blacks` = 6:10, check.names = FALSE)
f5emj3cl

f5emj3cl3#

请检查以下代码,其中我使用了iris Dataframe ,并将列Species重命名为sum of Whites,然后将其名称更改为Whites
编号

df <- iris %>% head %>% rename(`sum of Whites`=Species)

# get the names from the df and then change the name 
nam <- trimws(str_replace(names(df),'sum of',''))

# apply the names to the df
names(df) <- nam

输出

Sepal.Length Sepal.Width Petal.Length Petal.Width Whites
1          5.1         3.5          1.4         0.2 setosa
2          4.9         3.0          1.4         0.2 setosa
3          4.7         3.2          1.3         0.2 setosa
4          4.6         3.1          1.5         0.2 setosa
5          5.0         3.6          1.4         0.2 setosa
6          5.4         3.9          1.7         0.4 setosa

相关问题