gpt4 book ai didi

r - 按 R 中的列组长度对数据帧进行排序

转载 作者:行者123 更新时间:2023-12-04 12:32:38 25 4
gpt4 key购买 nike

我有以下数据框:

v2 <- c(4.5, 2.5, 3.5, 5.5, 7.5, 6.5, 2.5, 1.5, 3.5)
v1 <- c(2.2, 3.2, 1.2, 4.2, 2.2, 3.2, 2.2, 1.2, 5.2)
lvl <- c("a","a","b","b","b","b","c","c","c")
d <- data.frame(v1,v2,lvl)
d

v1 v2 lvl
1 2.2 4.5 a
2 3.2 2.5 a
3 1.2 3.5 b
4 4.2 5.5 b
5 2.2 7.5 b
6 3.2 6.5 b
7 2.2 2.5 c
8 1.2 1.5 c
9 5.2 3.5 c

我想做的是根据 lvl 分组的大小对数据框进行排序。产生以下结果:

v1  v2   lvl
2.2 4.5 a
3.2 2.5 a
2.2 2.5 c
1.2 1.5 c
5.2 3.5 c
1.2 3.5 b
4.2 5.5 b
2.2 7.5 b
3.2 6.5 b

因为,a 的长度为 2,c 的长度为 3,b 的长度为 4。

如何实现?

最佳答案

d$lvl <- factor(d$lvl, levels = names(sort(table(d$lvl))))
d[order(d$lvl),]
v1 v2 lvl
1 2.2 4.5 a
2 3.2 2.5 a
7 2.2 2.5 c
8 1.2 1.5 c
9 5.2 3.5 c
3 1.2 3.5 b
4 4.2 5.5 b
5 2.2 7.5 b
6 3.2 6.5 b

关于r - 按 R 中的列组长度对数据帧进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28058166/

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