我在R中有一个数据表,希望按字母顺序然后按数字顺序对单个列进行排序。
例如,该列可能具有与以下内容类似的条目:
v1<- c("All", "1.2 - Social Care", "2.1 - Science", "1.1 - Health")
使用订单功能
v1[order(v1)]
导致
[1] "1.1 - Health" "1.2 - Social Care" "2.1 - Science" "All"
但是,我想要的是:
"All" "1.1 - Health" "1.2 - Social Care" "2.1 - Science"
如何在数字前按字母排序?
您可以使用正则表达式来标识哪些条目以数字开头并将其放在最后:
w = grep("^[0-9]", v1)
c(sort(v1[-w]), sort(v1[w]))
# "All" "1.1 - Health" "1.2 - Social Care" "2.1 - Science"
有关R中的正则表达式的更多信息,请键入?regex
和?grep
。或者,您可以构造w = which(substr(v1,1,1) %in% 0:9)
类似于@MikeyMike的答案的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句