Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

re-arrange columns in a data frame in R

Tags:

dataframe

r

I have a script which refers to certain columns by indices and not names. Is there a way for a new data set which has the same columns to be re-arranged in a way that in would fit the original data frame for which the script was written?

I would like df2 to have the same order of columns as df1 below

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
like image 565
tubby Avatar asked Nov 23 '25 11:11

tubby


2 Answers

You can just do

 df2[names(df1)]
like image 104
akrun Avatar answered Nov 25 '25 05:11

akrun


> 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
like image 36
Jilber Urbina Avatar answered Nov 25 '25 05:11

Jilber Urbina