重新安排R中数据框中的列

时间:2015-07-10 18:48:08

标签: r dataframe

我有一个脚本,它通过索引引用某些列而不是名称。有没有办法让一个具有相同列的新数据集以一种适合编写脚本的原始数据框的方式重新排列?

我希望df2与下面的df1具有相同的列顺序

age = c(20,30,22,32,10)
gender = c('M','F','M','F','M')
name = c('A','B','C','D','E')

df1 = data.frame(age,name,gender)
df2 = data.frame(gender, name, age)
> df1
  age name gender
1  20    A      M
2  30    B      F
3  22    C      M
4  32    D      F
5  10    E      M
> df2
  gender name age
1      M    A  20
2      F    B  30
3      M    C  22
4      F    D  32
5      M    E  10

3 个答案:

答案 0 :(得分:5)

你可以做到

{{1}}

答案 1 :(得分:2)

> df2[, names(df1)]
  age name gender
1  20    A      M
2  30    B      F
3  22    C      M
4  32    D      F
5  10    E      M

答案 2 :(得分:2)

如果您决定开始使用data.table软件包,那么setcolorder函数就是这样的:

setcolorder(df2,names(df1))

来自?setcolorder

  

setcolorder通过引用将data.table列重新排序到提供的新订单。

您可以通过参考"更多地了解"的含义。 here,但是如果你有一个 data.frame,那么你应该更喜欢这个,因为它会更快。