删除列名中的字符

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))

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

从R中的列名末尾删除不定长度括号中的字符

根据 R 中的特定列名从字符向量中删除逗号

删除R中数据框中所有列名的前两个字符

Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix)使用replace函数批量删除列名中的后缀(suffix)

Pandas批量删除dataframe列名中的前缀实战:使用lstrip函数批量删除列名中的前缀(prefix)使用replace函数批量删除列名中的前缀(prefix)

如何根据包含的字符串的一部分选择列,然后在 R 中删除部分列名? (列位置可能不同)