Move a column to first position in a data frame

前端 未结 8 1511
别那么骄傲
别那么骄傲 2020-12-22 23:30

I would like to have the last column of the data frame moved to the start (as first column). How can I do it in R?

My data.frame has about a thousand columns to chan

相关标签:
8条回答
  • 2020-12-23 00:13

    dplyr 1.0.0 now includes the relocate() function to reorder columns. The default behaviour is to move the named column(s) to the first position.

    library(dplyr) # from version 1.0.0 
    
    mtcars %>%
      relocate(carb) %>%
      head()
    
                      carb  mpg cyl disp  hp drat    wt  qsec vs am gear
    Mazda RX4            4 21.0   6  160 110 3.90 2.620 16.46  0  1    4
    Mazda RX4 Wag        4 21.0   6  160 110 3.90 2.875 17.02  0  1    4
    Datsun 710           1 22.8   4  108  93 3.85 2.320 18.61  1  1    4
    Hornet 4 Drive       1 21.4   6  258 110 3.08 3.215 19.44  1  0    3
    Hornet Sportabout    2 18.7   8  360 175 3.15 3.440 17.02  0  0    3
    Valiant              1 18.1   6  225 105 2.76 3.460 20.22  1  0    3
    

    But other locations can be specifed with the .before or .after arguments:

    mtcars %>%
      relocate(gear, carb, .before = cyl) %>%
      head()
    
                       mpg gear carb cyl disp  hp drat    wt  qsec vs am
    Mazda RX4         21.0    4    4   6  160 110 3.90 2.620 16.46  0  1
    Mazda RX4 Wag     21.0    4    4   6  160 110 3.90 2.875 17.02  0  1
    Datsun 710        22.8    4    1   4  108  93 3.85 2.320 18.61  1  1
    Hornet 4 Drive    21.4    3    1   6  258 110 3.08 3.215 19.44  1  0
    Hornet Sportabout 18.7    3    2   8  360 175 3.15 3.440 17.02  0  0
    Valiant           18.1    3    1   6  225 105 2.76 3.460 20.22  1  0
    
    0 讨论(0)
  • 2020-12-23 00:18

    A native R approach that works with any number of rows or columns to move the last column of a dataframe to the first column position:

    df <- df[,c(ncol(df),1:ncol(df)-1)]
    

    It can be used to move any column to the first column by replacing:

    df <- df[,c(your_column_number_here,1:ncol(df)-1)]
    

    If you don't know the column number, but know the column label name, do the following replacing "your_column_name_here":

    columnNumber <- which(colnames(df)=="your_column_name_here")
    df <- df[,c(columnNumber,1:ncol(df)-1)]
    
    0 讨论(0)
提交回复
热议问题