gpt4 book ai didi

r - 如何根据不同的列和值在数据框中部分排序?

转载 作者:行者123 更新时间:2023-12-03 22:58:50 24 4
gpt4 key购买 nike

我想根据不同的列对数据框中的行进行排序,但我不知道如何实现这一点。这里有一个例子来澄清:

x <- data.frame(X=c(10:1), Y=c(6,6,3,6,3,3,9,9,9,2), L=c("A","B","C","C","A","B","C","A","B","C"))
x
X Y L
1 10 6 A
2 9 6 B
3 8 3 C
4 7 6 C
5 6 3 A
6 5 3 B
7 4 9 C
8 3 9 A
9 2 9 B
10 1 2 C
    X Y L
1 3 9 A
2 6 3 A
3 10 6 A
4 9 6 B
5 5 3 B
6 2 9 B
7 1 2 C
8 8 3 C
9 7 6 C
10 4 9 C
在此示例中,“A”值按“X”递增排序。带有“B”的值按“X”递减排序,带有“C”的值按“Y”递增排序。
这可以通过 order() 来完成吗?或 %>% arrange ?
(数据框很大)
谢谢!

最佳答案

您可以使用 order 使用的条件创建一个新向量。 .

y <- x$X
i <- x$L == "B"
y[i] <- y[i] * -1
i <- x$L == "C"
y[i] <- x$Y[i]
x[order(x$L, y),]
# X Y L
#8 3 9 A
#5 6 3 A
#1 10 6 A
#2 9 6 B
#6 5 3 B
#9 2 9 B
#10 1 2 C
#3 8 3 C
#4 7 6 C
#7 4 9 C

关于r - 如何根据不同的列和值在数据框中部分排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67884566/

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