2016-01-05 36 views
4

我有例如在列名删除字符

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 

回答

7

我们可以使用sub 。我们匹配字符串的末尾($)后跟一个或多个数字(\\d+)的模式_,并替换为''

names(df) <- sub('_\\d+$', '', names(df)) 

或者作为@大卫Arenburg提到的,它可以是_后的一个或多个的任何字符(.*)的(其将匹配图案,例如var1_1var1_d3533等)

names(df) sub("_.*", "", df) 

或者我们使用paste(@ jogo的评论)

names(df) <- c("Ind", paste0("var", 1:100)) 
+1

谢谢akrun。它工作正常。 – Shima

+1

您可以在这种情况下执行'sub(“_。*”,“”,x)'这个例子可能是 –

+1

或'names(df)< - c(“Ind”,paste0(“var”,1:100)) ' – jogo