R 重命名多个列(变量编号)
我有一个数据集,其中最后一列表示从该数据集中提取的站点数R 重命名多个列(变量编号),r,data.table,dplyr,R,Data.table,Dplyr,我有一个数据集,其中最后一列表示从该数据集中提取的站点数 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,以Stop1、Stop2等结束。。。 问题是这些列可能会有所不同。有时我有10个,有时我有6个 我尝试过使用dplyr和data.table,但不确定如何实
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,以Stop1、Stop2等结束。。。
问题是这些列可能会有所不同。有时我有10个,有时我有6个
我尝试过使用dplyr和data.table,但不确定如何实现自动化
编辑:ColA到ColC是固定不变的。如果我正确理解了您的问题,这是一个足够灵活的代码,应该可以解决您的问题。开始考虑以下数据集:
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
现在根据需要重命名Coluns:
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
我希望它能帮助您。第一列ColA、ColB和ColC是否已修复?@MarcoSandri是的。我会在这个问题上加上这些信息。@MarcoSandri做得很好。但是,我如何从第1列而不是第4列中进行选择?如果第一列内容不一样,那就更灵活了。@MarcoSandri可能是我没有正确解释。您编写的代码只是替换第一列中每一列的名称。我的意思是如何从名为1的列开始重命名列,因为在可能有n个列之前,我发布了一个可能的解决方案。如果你觉得有用,请投票表决我的答案。非常感谢。