gpt4 book ai didi

r - 如何根据另一个数据框的列中的值对列名进行排序?

转载 作者:行者123 更新时间:2023-12-05 05:30:13 24 4
gpt4 key购买 nike

我有两个数据框如下:

df1 <- data.frame (a  = c(1,2,3,4,5),
b = c(6,7,8,9,10),
x = c(6,7,8,9,10),
d = c(6,7,8,9,10),
z = c(6,7,8,9,10)
)
df1

看起来像:

a   b   x   d   z
1 6 6 6 6
2 7 7 7 7
3 8 8 8 8
4 9 9 9 9
5 10 10 10 10

另一个数据框 df2

df2 = data.frame (km = c("d","z","b","x","a"))

看起来如下:

km
d
z
b
x
a

我想根据第二个数据框的行值对第一个数据框的列进行排序,这样输出如下:

d   z   b   x   a
6 6 6 6 1
7 7 7 7 2
8 8 8 8 3
9 9 9 9 4
10 10 10 10 5

最佳答案

在 base R 中,使用 df2$km 简单地子集 df1 的列:

df1[, df2$km]

或者使用 dplyr,使用 select(all_of()):

library(dplyr)

df1 %>%
select(all_of(df2$km))

两种方法的结果:

   d  z  b  x a
1 6 6 6 6 1
2 7 7 7 7 2
3 8 8 8 8 3
4 9 9 9 9 4
5 10 10 10 10 5

关于r - 如何根据另一个数据框的列中的值对列名进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74750208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com