这是参考这个问题。
我想重命名大型数据框中的列子集。我希望以下代码将列、、 X4和X5分别重命名为、、、X6和:X7gradekgrade1grade2grade3
set.seed(1)
in.df <- data.frame( matrix( rnorm(60), ncol=10) )
names(in.df) <- ifelse( names(in.df) %in% c('X4', 'X5', 'X6', 'X7'),
paste('grade', c('k',1:3), sep=''),
names(in.df) )
然而,
> names(in.df)
[1] "X1" "X2" "X3" "grade3" "gradek" "grade1" "grade2" "X8"
[9] "X9" "X10"
虽然
> paste('grade', c('k',1:3), sep='')
[1] "gradek" "grade1" "grade2" "grade3"
表明订单没有被保留。这个线程,建议使用match而不是%in%会工作,但在这种情况下它不会。(也许在其他版本的 R 中也是如此。在我安装的版本(2.15.3)中,帮助页面上的match建议%in%是通过这样定义的,match因此切换它没有帮助。)
任何帮助,将不胜感激!