【发布时间】:2020-10-05 23:58:31
【问题描述】:
我需要根据单独矩阵中的值对数据框中每一列的值进行排序。请注意,每一列都将独立于其他列进行排序(即不仅仅是按行索引排序)。该矩阵与数据帧具有相同的维度,并且值对应于应从数据帧返回的行号。
代表:
library(magrittr)
library(dplyr)
data("starwars")
data <- starwars[1:3, 1:3]
data
#> # A tibble: 3 x 3
#> name height mass
#> <chr> <int> <dbl>
#> 1 Luke Skywalker 172 77
#> 2 C-3PO 167 75
#> 3 R2-D2 96 32
sorting_order <- cbind(c(2,3,1),
c(3,2,1),
c(1,3,2))
sorting_order
#> [,1] [,2] [,3]
#> [1,] 2 3 1
#> [2,] 3 2 3
#> [3,] 1 1 2
期望的输出:
#> name height mass
#> 1 C-3PO 96 77
#> 2 R2-D2 167 32
#> 3 Luke Skywalker 172 75
我意识到可以使用循环来完成,但我正在寻找一种更有效的方法,因为我将处理更大的数据集。
【问题讨论】:
标签: r dataframe sorting matrix