这是参考这个问题。
我想重命名大型数据框中的列子集。我希望以下代码将列、、 X4
和X5
分别重命名为、、、X6
和:X7
gradek
grade1
grade2
grade3
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
因此切换它没有帮助。)
任何帮助,将不胜感激!