我有以下数据为例

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_1var1_d3533等模式)。
names(df) sub("_.*", "", df)

或者我们使用paste(@jogo的评论)
names(df) <- c("Ind", paste0("var", 1:100))

09-26 22:05
查看更多