【问题标题】:Reorder Columns in a df based on row values根据行值对 df 中的列重新排序
【发布时间】:2021-03-18 17:08:24
【问题描述】:

我有一个具有这种结构的 df:

id v1 v2 v3
1  1  2  3
2  4  4  1
3  1  1  1

并希望根据第一行的值对列重新排序,如下所示:

id v3 v2 v1
1  3  2  1
2  1  4  4
3  1  1  1

【问题讨论】:

标签: r tidyverse


【解决方案1】:

我们对没有第一列的第一行进行子集化,unlistorder 在降序时,然后加 1,连接第一列的索引以进行重新排序

df1[c(1, 1 + order(-unlist(df1[1, -1])))]

-输出

#  id v3 v2 v1
#1  1  3  2  1
#2  2  1  4  4
#3  3  1  1  1

数据

df1 <- structure(list(id = 1:3, v1 = c(1L, 4L, 1L), v2 = c(2L, 4L, 1L
), v3 = c(3L, 1L, 1L)), class = "data.frame", row.names = c(NA, 
-3L))

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 2021-09-12
    • 2021-12-24
    • 2020-09-27
    • 1970-01-01
    • 2020-12-28
    • 2020-06-02
    • 2018-06-01
    • 2021-04-30
    相关资源
    最近更新 更多