在R中重命名多个列的简化方法
这感觉应该很简单!如果我找不到明显的答案,请道歉-我在搜索时没有找到它 我合并了两组数据——假设一组与新妈妈有关,另一组与婴儿有关。在他们最初的数据帧中,他们没有在列中指定他们是母亲还是婴儿,但现在他们结合在一起,对于某些列,为了避免混淆,值得指定。我不一定要对所有列都这样做,因为在某些情况下,这是显而易见的,并且会使列名太长和笨拙,而在另一些情况下,它们与这两者都相关 例如,我有类似的东西,除了有更多的列:在R中重命名多个列的简化方法,r,dataframe,rename,R,Dataframe,Rename,这感觉应该很简单!如果我找不到明显的答案,请道歉-我在搜索时没有找到它 我合并了两组数据——假设一组与新妈妈有关,另一组与婴儿有关。在他们最初的数据帧中,他们没有在列中指定他们是母亲还是婴儿,但现在他们结合在一起,对于某些列,为了避免混淆,值得指定。我不一定要对所有列都这样做,因为在某些情况下,这是显而易见的,并且会使列名太长和笨拙,而在另一些情况下,它们与这两者都相关 例如,我有类似的东西,除了有更多的列: family <- c("Ali", "Baker", "Cruz") sex
family <- c("Ali", "Baker", "Cruz")
sex <- c("FEMALE", "MALE", "FEMALE")
first_name <- c("Aylin", "Betty", "Camila")
age <- c(30, 27, 36)
area <- c("Aberdeen", "Birmingham", "Cardiff")
births_df <- data.frame(family, sex, first_name, age, area)
带有dplyr的
系列:
library(dplyr)
births_df %>% rename_at(3:4,~paste0("mother_", .))
# family sex mother_first_name mother_age area
# 1 Ali FEMALE Aylin 30 Aberdeen
# 2 Baker MALE Betty 27 Birmingham
# 3 Cruz FEMALE Camila 36 Cardiff
还包括:
births_df %>% rename_at(c("first_name", "age"),~paste0("mother_", .))
births_df %>% rename_at(vars(first_name, age),~paste0("mother_", .))
使用dplyr
:
library(dplyr)
births_df %>% rename_at(3:4,~paste0("mother_", .))
# family sex mother_first_name mother_age area
# 1 Ali FEMALE Aylin 30 Aberdeen
# 2 Baker MALE Betty 27 Birmingham
# 3 Cruz FEMALE Camila 36 Cardiff
还包括:
births_df %>% rename_at(c("first_name", "age"),~paste0("mother_", .))
births_df %>% rename_at(vars(first_name, age),~paste0("mother_", .))
另一种方法是使用rename_at()
,vars()
和matches()
库(dplyr)
出生率(单位:df%)
重命名(vars(匹配项(“first_name | age”),~str_replace(,“^”,“mother|”))
#家庭性别母亲姓母亲年龄区
#1阿里女艾琳30阿伯丁
#2贝克男贝蒂27伯明翰
#3克鲁兹女卡米拉36加的夫
我们找到任何与名字
或年龄
匹配的列,然后在字符串开头使用str\u replace()
添加母亲
。这种方法在这种情况下有效。另一种方法是使用rename_at()
、vars()
和matches()
库(dplyr)
出生率(单位:df%)
重命名(vars(匹配项(“first_name | age”),~str_replace(,“^”,“mother|”))
#家庭性别母亲姓母亲年龄区
#1阿里女艾琳30阿伯丁
#2贝克男贝蒂27伯明翰
#3克鲁兹女卡米拉36加的夫
我们找到任何与名字
或年龄
匹配的列,然后在字符串开头使用str\u replace()
添加母亲
。这种方法在这种情况下有效。您需要姓名(出生日期)[3:4]您需要姓名(出生日期)[3:4]谢谢!我用了你的第一个选择,这很有效。我以前不知道重命名,但这正是我需要的。谢谢!我用了你的第一个选择,这很有效。我以前不知道重命名,但这正是我所需要的。
births_df %>% rename_at(c("first_name", "age"),~paste0("mother_", .))
births_df %>% rename_at(vars(first_name, age),~paste0("mother_", .))
library(dplyr)
births_df <- births_df %>%
rename_at(vars(matches("first_name|age")), ~ str_replace(., "^", "mother_"))
# family sex mother_first_name mother_age area
# 1 Ali FEMALE Aylin 30 Aberdeen
# 2 Baker MALE Betty 27 Birmingham
# 3 Cruz FEMALE Camila 36 Cardiff