删除列名中的字符

时间:2016-01-05 15:35:32

标签: r rename

我有以下数据,例如

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 个答案:

答案 0 :(得分:7)

我们可以使用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))