簡體   English   中英

重新安排R中數據框中的列

[英]re-arrange columns in a data frame in R

我有一個腳本,它通過索引而不是名稱來引用某些列。 有沒有辦法讓一個具有相同列的新數據集以一種適合編寫腳本的原始數據框的方式重新排列?

我希望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

你可以這樣做

 df2[names(df1)]
> 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

如果您決定開始使用data.table包,則有一個setcolorder函數,其工作方式如下:

setcolorder(df2,names(df1))

來自?setcolorder

setcolorder通過引用將data.table列重新排序到提供的新訂單。

您可以了解更多關於什么是平均的“參照” 在這里 ,但我只想說,你應該更喜歡這個,如果你已經有了一個大的 data.frame ,因為它會更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM