2017-06-03 45 views
0

我有一个数据集,最后一列表示从该数据集中提取的停止点的数量。重命名几列(可变数字)

ColA ColB ColC 1 2 3 4 5 6 7 8 9 10 (...) 
a  g  c a q e r e r q g h q (...) 

我想是从1栏中选择,直到最后一列,在此之前它添加Stop,与Stop1Stop2结束了,等... 的问题是,这些列可以改变。有时我在1之后有10个,其​​他时候我有6个。

我试过用dplyr和data.table,但我不知道如何自动化这个。

编辑:ColA ColC是固定的,并始终相同。

+1

是否修正了第一列('ColA','ColB'和'ColC')? –

+0

@MarcoSandri是的。我会在这个问题上添加这些信息。 – FilipeTeixeira

+0

@MarcoSandri完美工作。但是,我怎么能从列'1'而不是从位置4选择?如果第一栏会有所不同,那甚至会更灵活。 – FilipeTeixeira

回答

1

如果我正确理解你的问题,这是一个足够灵活的代码,应该可以解决你的问题。开始考虑下面的数据集:

set.seed(1) 
df <- data.frame(matrix(rpois(130, 20),ncol=13)) 
names(df) <- c(paste("Col",LETTERS[1:3],sep=""),as.character(1:10)) 
df 

####### 
    ColA ColB ColC 1 2 3 4 5 6 7 8 9 10 
1 17 21 20 13 13 15 29 25 16 15 12 23 17 
2 25 17 11 24 23 14 22 23 25 14 18 19 15 
3 25 18 22 18 19 30 16 19 23 27 18 19 11 
4 21 18 24 25 23 19 19 18 27 23 18 16 18 
5 13 21 16 18 21 23 22 18 22 24 22 26 15 
6 22 16 17 27 17 20 24 24 14 21 19 17 15 
7 23 23 18 22 16 16 20 18 21 27 17 22 14 
8 22 22 17 17 26 13 19 25 24 17 15 13 20 
9 18 24 21 22 28 26 15 22 23 20 19 15 27 
10 26 23 19 16 18 20 17 25 16 20 19 18 19 

要求现在改名columuns:

k <- which(names(df)=="1") 
names(df)[k:ncol(df)] <- paste("Stop",1:(ncol(df)-k+1),sep="") 
df 

############# 
    ColA ColB ColC Stop1 Stop2 Stop3 Stop4 Stop5 Stop6 Stop7 Stop8 Stop9 Stop10 
1 17 21 20 13 13 15 29 25 16 15 12 23  17 
2 25 17 11 24 23 14 22 23 25 14 18 19  15 
3 25 18 22 18 19 30 16 19 23 27 18 19  11 
4 21 18 24 25 23 19 19 18 27 23 18 16  18 
5 13 21 16 18 21 23 22 18 22 24 22 26  15 
6 22 16 17 27 17 20 24 24 14 21 19 17  15 
7 23 23 18 22 16 16 20 18 21 27 17 22  14 
8 22 22 17 17 26 13 19 25 24 17 15 13  20 
9 18 24 21 22 28 26 15 22 23 20 19 15  27 
10 26 23 19 16 18 20 17 25 16 20 19 18  19 

我希望它可以帮助你。