繁体   English   中英

通过括号中的数字对字符向量进行排序

[英]Sorting a character vector by numbers in parentheses

这些chr必须进行排序:

files <- c("file (1).csv", "file (2).csv", "file.csv")

变成:

chr [1:3] "file.csv" "file (1).csv" "file (2).csv"

到目前为止,我已经找到了带有其mixedsortmixedorder函数的gtools软件包。 但是它们导致:

> library("gtools")
> mixedsort(files)    
[1] "file (1).csv" "file (2).csv" "file.csv"

有什么办法解决我的问题吗?

我们可以使用sub

i1 <- as.numeric(gsub("\\D+", "", files))
files[order(!is.na(i1), i1)]
#[1] "file.csv"     "file (1).csv" "file (2).csv"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM