gpt4 book ai didi

r - 如何使用订购功能订购负值?

转载 作者:行者123 更新时间:2023-12-02 04:09:07 24 4
gpt4 key购买 nike

我正在尝试使用order函数对表的列进行排序,

a<-c("-2","-7","-4")
b<-c("9","-1","3")


z<-data.frame(a,b)

当我想按a列从最大到最小对Z进行排序时,这是行不通的。该函数将负值按其绝对值排序。
z[order(z$a,decreasing=TRUE),]

最佳答案

如果需要将因子转换为数字,则必须按照FAQ的说明,首先转换为字符tna,然后转换为数字:

 str(z)
#'data.frame': 3 obs. of 2 variables:
# $ a: Factor w/ 3 levels "-2","-4","-7": 1 3 2
# $ b: Factor w/ 3 levels "-1","3","9": 3 1 2

z[order( as.numeric(as.character(z$a)), decreasing=TRUE ), ]
a b
1 -2 9
3 -4 3
2 -7 -1

(说明:因数,除非它们当然不是“有序因数”,否则不是有序的,与“>”或“<”的比较将返回NA。
> z$a[1] > z$a[2]
[1] NA
Warning message:
In Ops.factor(z$a[1], z$a[2]) : > not meaningful for factors

您要订购的是对数字的内部强制,这与您预期的不同。 )
> z$a
[1] -2 -7 -4
Levels: -2 -4 -7
> as.numeric(z$a)
[1] 1 3 2

关于r - 如何使用订购功能订购负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147299/

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