我有以下数据为例
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
最佳答案
我们可以使用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))