首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python和R中的异常行为

Python和R中的异常行为
EN

Stack Overflow用户
提问于 2021-03-11 23:27:58
回答 2查看 25关注 0票数 0
代码语言:javascript
运行
复制
# R
d <- c('5-10', '20+', '15-20', '10-15', '0-5')
sort(d)

[1] "0-5"   "10-15" "15-20" "20+"   "5-10"

# Python

d = ['0-5', '10-15', '15-20', '20+', '5-10']
sorted(d)

>>> ['0-5', '10-15', '15-20', '20+', '5-10']

此外,当然,我希望找到一个解决方案来正确地对这个数组进行排序,我的问题是:为什么要这样做?

EN

回答 2

Stack Overflow用户

发布于 2021-03-11 23:33:47

R try中

代码语言:javascript
运行
复制
stringr::str_sort(d, numeric = TRUE)
[1] "0-5"   "5-10"  "10-15" "15-20" "20+" 
票数 1
EN

Stack Overflow用户

发布于 2021-03-11 23:33:58

正如我在评论中提到的,字符串排序使用字母排序规则。如果你想把它们当作数字来处理,你可以在sortedkey参数中添加一些逻辑来对它们进行一些清理,并将它们作为数字进行排序:

代码语言:javascript
运行
复制
In [34]: sorted(d, key=lambda x: int(x.split('-')[0].replace('+', '')))
Out[34]: ['0-5', '5-10', '10-15', '15-20', '20+']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66585527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档