我通常使用arrange()
中的dplyr
函数对数据集进行排序,但它的表现方式我无法理解。我花了一点时间来了解这一点。我修复了我的代码并使用order()
做同样的事情,但现在我很好奇。我已经使用了arrange()
而没有多年思考过两次,我想知道为什么这似乎是默认行为。当涉及大写字母时,它看起来不能按字母顺序排序 - 因为它认为大写字母应该在小写字母之前,即使后者在字母表中位于它们之前。我错过了什么吗?
这并不总是一个问题,但是当我在安排tapply()
之后立即使用arrange()
时,它确实成为我的一个问题,假设数据的排序方式与{{1}相同运行时排序。这是tapply()
推出"苏联"的一个例子。之前"乌干达"和#34;乌克兰",而arrange()
(正确的,我认为!)将它放在最后。
order()
我环顾四周,看看其他人是否遇到过同样的问题,看不到任何东西。如果之前已经讨论过,请原谅我。
答案 0 :(得分:1)
是的,来自@MrFlick的评论是正确的。如果我做
Sys.setlocale("LC_COLLATE","C")
然后
tmp[order(tmp$countries),]
匹配arrange()