删除列名中的字符

Posted

技术标签:

【中文标题】删除列名中的字符【英文标题】:to delete characters in column names 【发布时间】:2016-04-09 12:00:54 【问题描述】:

我有以下数据例如

Ind var1_1 var2_2 var3_1 var4_2.......var100_1
 1   0      0       2      1             0
 2   2      0       1      0             2

我想重命名后面没有两个字符的列,如下所示

Ind var1 var2 var3 var4.......var100
 1   0     0    2    1           0
 2   2     0    1    0           2

【问题讨论】:

【参考方案1】:

我们可以使用sub。我们将模式 _ 后跟一个或多个数字 (\\d+) 匹配到字符串的末尾 ($) 并替换为 ''

names(df) <- sub('_\\d+$', '', names(df))

或者正如@David Arenburg 提到的,它可以是_ 之后的任何字符(.*)中的一个或多个(将匹配var1_1var1_d3533 等模式)

names(df) sub("_.*", "", df)

或者我们使用paste(@jogo 的评论)

names(df) <- c("Ind", paste0("var", 1:100))

【讨论】:

在这种情况下你可以只做sub("_.*", "", x) names(df) &lt;- c("Ind", paste0("var", 1:100))

以上是关于删除列名中的字符的主要内容,如果未能解决你的问题,请参考以下文章