我正在使用一个小数据集从谷歌表格。列名称是完整的调查问题,如。
“1.哪个团队最能描述您的工作?”
“2、你是经理吗?”
“3.你和x在一起多久了?”
我想将所有这些列重命名为“1”、“2”、“3”等。我知道我可以做下面的操作,但我希望有一个更优雅/更快的方法。共有23列这样的列。
survey %>% rename_with(
`1` = `1. What team most describes your work?`,
`2` = `2. Are you a manager?`...
这个很好用,但是编写起来很慢。有人在tidyverse有更好的吗?我是R和编码的新手,所以任何提示都很感谢。
2条答案
按热度按时间7rfyedvj1#
您可以在
rename_with(.cols = your_columns)
中提供多个列,并使用函数应用于选定列。在这里,问题编号(点之前的数字)被捕获((\\d+)
),整个列名被替换为该数字(regex捕获组1\\1
)。如果省略
.cols
参数,则默认情况下将选择所有列。f5emj3cl2#
还有更简洁的解决方案,其中之一是
str_extract
:这里我们提取名称字符串中的第一个数字。
另一种是
str_remove
:在这里我们去掉这一时期以后的任何东西。
数据(感谢@benson):