【发布时间】:2021-12-08 15:19:27
【问题描述】:
我有一个 tibble,它的列名包含空格和特殊字符,使用起来很麻烦。我想在处理数据时将这些列名称更改为更易于使用的名称,然后在最后将它们更改回原始名称以进行显示。理想情况下,我希望能够作为管道的一部分来执行此操作,但是我还没有弄清楚如何使用 rename_with() 来执行此操作。
样本数据:
df <- tibble(oldname1 = seq(1:10),
oldname2 = letters[seq(1:10)],
oldname3 = LETTERS[seq(1:10)])
cols_lookup <- tibble(old_names = c("oldname4", "oldname2", "oldname1"),
new_names = c("newname4", "newname2", "newname1"))
期望的输出:
> head(df_renamed)
# A tibble: 6 x 3
newname1 newname2 oldname3
<int> <chr> <chr>
1 1 a A
2 2 b B
3 3 c C
4 4 d D
5 5 e E
6 6 f F
在此工作期间,一些列被删除并重新排序,因此在将它们转换回来时,cols_lookup 表中将有条目不再在 df 中。在df 中还创建了一些新列,我希望它们的名称保持不变。
我知道已经有人问过类似的问题,但是答案要么不适用于小标题或管道(例如使用 match() 的那些),要么如果列不适用'在两个表中的顺序并不相同。
【问题讨论】: