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.
Asked
Active
Viewed 36 times
0
-
"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 Answers
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