r - 重命名包含某个字符串的所有列名
问题描述
假设我有一个包含 6 列的数据集,并且我想通过字符串“number_likes”替换列名称中的字符串,包括字符串“likes_comment”。
示例数据:
da = data.frame(likes_comment_1 = c(1,2,3,4), likes_comment_2 = c(2,2,3,1), likes_comment_3=c(5,2,3,1), quotes_comment1=c(2,1,3,4), quotes_comment2_=c(3,5,7,1), quotes_comment3=c(2,3,1,2))
da
likes_comment_1 likes_comment_2 likes_comment_3 quotes_comment1 quotes_comment2_ quotes_comment3
1 1 2 5 2 3 2
2 2 2 2 1 5 3
3 3 3 3 3 7 1
4 4 1 1 4 1 2
目标数据:
target_da = data.frame(number_likes_1 = c(1,2,3,4), number_likes_2 = c(2,2,3,1), number_likes_3=c(5,2,3,1), quotes_comment1=c(2,1,3,4), quotes_comment2_=c(3,5,7,1), quotes_comment3=c(2,3,1,2))
target_da
number_likes_1 number_likes_2 number_likes_3 quotes_comment1 quotes_comment2_ quotes_comment3
1 1 2 5 2 3 2
2 2 2 2 1 5 3
3 3 3 3 3 7 1
4 4 1 1 4 1 2
我怎样才能做到这一点?
解决方案
由于 OP 被标记为data.table
:
library(data.table)
setnames(da, sub('likes_comment', 'number_likes', names(da), fixed = TRUE))
推荐阅读
- shell - 如何将结果从 shell 脚本返回到 perl?
- azure-functions - 将 Visual Studio 2019 升级到版本 16.4 后,Azure 函数在 azure 门户上引发绑定错误
- node.js - 正确设置视图和视图引擎以在前端使用 Reactjs
- c# - getByIds 的 Microsoft.Graph 方法未返回包含其所有属性的完整对象
- html - 如何在html中创建嵌套表
- database - 在 Flutter 中使用 moor 时使用关键字时出错
- node.js - 如何在nodejs中进行作业调度?
- python - 为什么 csv 输出与 pandas 中的原始输出不同
- printing - 在 Windows 中打印整页
- typescript - 如何在不使用 as 的情况下确保 TypeScript 的 string|string[] 是字符串?