适当时更改列名,并忽略不适用

Jak*_*ake 0 r dplyr tidyr

我试图格式化数据文件,但我的问题是一些文件包含比其他更多的变量.我想更改列名以适合我的主数据文件.

例如

df <- data.frame(
       f =c(111,123,128),
       w = c(99,84,102),
       s = c(122,105,112) )
Run Code Online (Sandbox Code Playgroud)

返回

    f   w   s
1 111  99 122
2 123  84 105
3 128 102 112
Run Code Online (Sandbox Code Playgroud)

为了重命名我做的列:

rename_df <- df %>% rename(Fall=f,Winter=w, Spring=s)
Run Code Online (Sandbox Code Playgroud)

我的问题是,一些数据文件只有Fall,有些来自秋天和冬天,有些来自全部3,或者你能想到的任何组合.我试图找出R是否还有寻找"f","w","s",当它找到其中一个列名时,它会将其更改为相应的文本("Fall","Winter" ,"春天")当列的一次不存在时,它就会忽略它.我正在尝试制作一个代码,一旦数据文件进来,我就可以通过该代码运行它,它将返回给我一个df,并更改了相应的列.

谢谢

G. *_*eck 5

即使df有指定列名的子集,这也可以工作:

L <- list(f = "Fall", w = "Winter", s = "Spring")
names(df) <- L[names(df)]
Run Code Online (Sandbox Code Playgroud)