df1 <- df %>%
rename(newcol1 = oldcol1) %>%
rename(newcol2 = oldcol2) %>%
rename(newcol3 = oldcol3) %>%
rename(newcol4 = oldcol4) %>%
rename(newcol5 = oldcol5)
我正在尝试编写一个我刚刚学到的函数,该函数将执行与上述相同的操作。
renaming = function(df, oldcol, newcol) {
rename(df, newcol = oldcol)
但是我不确定如何处理多列。 任何帮助将不胜感激!
答案 0 :(得分:1)
使用基数R
names(df) <- c("newname1", "newname2", "newname3") # for all varnames
names(df)[c(1,3,4)] <- c("newname1", "newname3", "newname4") # for varnames 1,3,4
names(df)[names(df) == "oldname"] <- "newname" # for one varname
使用data.table
setnames(dt, old=c("oldname1", "oldname2"), new=c("newname1", "newname2"))
使用dplyr / tidyverse
df %>% rename(newname1 = oldname1, newname2 = oldname2)
答案 1 :(得分:0)
您可以使用tidyverse软件包set_names
中的purrr
。
可复制的示例:
> df <- iris
> df1 <- df %>%
purrr::set_names(c("d","x","y","z","a"))
> df1
d x y z a
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