我有以下数据,例如
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
答案 0 :(得分:7)
我们可以使用sub
。我们将模式_
后跟一个或多个数字(\\d+
)与字符串的结尾($
)匹配,并替换为''
。
names(df) <- sub('_\\d+$', '', names(df))
或者正如@David Arenburg所提到的,它可以是.*
之后的任何字符(_
)中的一个或多个(它将匹配var1_1
,var1_d3533
等模式等)
names(df) sub("_.*", "", df)
或者我们使用paste
(@ jogo的评论)
names(df) <- c("Ind", paste0("var", 1:100))