首页 > 解决方案 > 重命名包含某个字符串的所有列名

问题描述

假设我有一个包含 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

我怎样才能做到这一点?

标签: rstringdplyrdata.table

解决方案


由于 OP 被标记为data.table

library(data.table)
setnames(da, sub('likes_comment', 'number_likes', names(da), fixed = TRUE))

推荐阅读