R:dplyr::arrange(版本1.1.0)返回意外结果

bn31dyow  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(105)

dplyr::arrange版本1.1.0在我运行一个旧程序时返回了意外结果。这是故意的还是一个可能被修补的错误?请参见下面的示例。
问候你,马丁

# example data 
a <- c("aa", "BB", "Anslag", "bb") 
b <- c(1,2,3,4) 
c <- data.frame(a, b) 
c 
# arrange 
dplyr::arrange(c, a)

预期值(验证版本1.0.10):aa、Anslag、BB、bb
实际值(w 1.1.0):Anslag,BB,aa,bb

nvbavucw

nvbavucw1#

根据tidyverse博客,这是设计的:
在对字符向量进行排序时,C语言环境现在是默认的,而不是系统语言环境
但是正如在帖子中提到的,你可以通过设置options(dplyr.legacy_locale = TRUE)来获得“旧”行为,或者像在评论中提到的@DavisVaughan那样,通过新的.locale参数显式设置语言环境:

dat <- data.frame(
  a = c("aa", "BB", "Anslag", "bb"), 
  b = c(1,2,3,4)
)
withr::with_options(list(dplyr.legacy_locale = TRUE), dplyr::arrange(dat, a))
#>        a b
#> 1     aa 1
#> 2 Anslag 3
#> 3     bb 4
#> 4     BB 2

dplyr::arrange(dat, a, .locale = "en")
#>        a b
#> 1     aa 1
#> 2 Anslag 3
#> 3     bb 4
#> 4     BB 2

相关问题