0

I would like to know how I can transpose three columns that have been placed at the end of my table, moving them to the beginning, also deleting the first column that is not needed.

Dharman
  • 30,962
  • 25
  • 85
  • 135
  • "transpose" usually means switch rows and columns (like a matrix transpose)... is that what you mean or you just want to reorder the columns? I think the [FAQ on How to reorder columns in a data frame?](https://stackoverflow.com/q/5620885/903061) is what you're looking for. – Gregor Thomas Apr 22 '21 at 14:44
  • If you need more help than what is provided in that link, please share a reproducible example of your data along with what you've tried. `dput()` is the nicest way to share reproducible data, e.g., `dput(your_data[1:4, ])` to share the first 4 rows. – Gregor Thomas Apr 22 '21 at 14:45
  • There are answers here: https://stackoverflow.com/questions/5620885/how-does-one-reorder-columns-in-a-data-frame – Elle Apr 22 '21 at 14:56

1 Answers1

0

The dplyr package from the tidyverse can help you with this. Use select to keep/remove columns, and relocate to move them. Have a look at the documentation https://dplyr.tidyverse.org/ for more info:

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

mtcars <- as_tibble(mtcars)
mtcars
#> # A tibble: 32 x 11
#>      mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
#>  2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
#>  3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
#>  4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
#>  5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
#>  6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
#>  7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
#>  8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
#>  9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#> 10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
#> # ... with 22 more rows

mtcars %>% select(-mpg) %>% relocate(c(am, gear, carb))
#> # A tibble: 32 x 10
#>       am  gear  carb   cyl  disp    hp  drat    wt  qsec    vs
#>    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#>  1     1     4     4     6  160    110  3.9   2.62  16.5     0
#>  2     1     4     4     6  160    110  3.9   2.88  17.0     0
#>  3     1     4     1     4  108     93  3.85  2.32  18.6     1
#>  4     0     3     1     6  258    110  3.08  3.22  19.4     1
#>  5     0     3     2     8  360    175  3.15  3.44  17.0     0
#>  6     0     3     1     6  225    105  2.76  3.46  20.2     1
#>  7     0     3     4     8  360    245  3.21  3.57  15.8     0
#>  8     0     4     2     4  147.    62  3.69  3.19  20       1
#>  9     0     4     2     4  141.    95  3.92  3.15  22.9     1
#> 10     0     4     4     6  168.   123  3.92  3.44  18.3     1
#> # ... with 22 more rows

Created on 2021-04-22 by the reprex package (v1.0.0)

s_pike
  • 1,710
  • 1
  • 10
  • 22