You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tidyverse的arrange按字母顺序排列数据框列遇异常

不区分大小写的字符串排序解决方案

默认的arrange()是按ASCII码排序的,大写字母的ASCII值小于小写字母,所以会出现所有大写字母排在前面的情况。要实现不区分大小写的字母序排序,有两种简单可行的方法:

方法1:基于转换后的大小写列排序

在arrange()里用str_to_lower()(或str_to_upper())统一转换列的大小写后作为排序依据,原列的内容会保持不变:

library(tidyverse)

df <- data.frame(col1 = c("A","b","B","C","c"))
df %>% arrange(str_to_lower(col1))

执行后得到的结果:

col1
1    A
2    b
3    B
4    C
5    c

方法2:指定locale参数

如果需要适配特定语言的排序规则,可以通过.locale参数指定支持不区分大小写排序的区域设置,比如英文环境:

df %>% arrange(col1, .locale = "en_US.UTF-8")

注意:不同操作系统支持的locale值可能存在差异,需要根据实际环境调整具体参数值。

内容的提问来源于stack exchange,提问作者frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:00:14