R:有没有办法加快字符串的排序?

时间:2017-12-10 12:15:50

标签: r sorting

我试图对字符串向量进行排序,请参阅下面的MWE

# example R code    
N=1e8; K=100
set.seed(1)
id3 = sample(sprintf("i%07d",1:(N/K)), N, TRUE)
pt = proc.time()
sort(id3)
data.table::timetaken(pt)

它在我的电脑上完成了近5分钟,所以我取消了它。

我注意到在Julia中,我的笔记本电脑上可以在大约90秒内执行相同的操作

# example Julia cde
const M=100_000_000; const K=100
srand(1)
svec1 = rand(["i"*dec(k,7) for k in 1:M÷K], M)
@time sort(svec1)

1 个答案:

答案 0 :(得分:6)

只需使用method = "radix"来使用基数排序来加速排序

N=1e8; K=100
set.seed(1)
id3 = sample(sprintf("i%07d",1:(N/K)), N, TRUE)
pt = proc.time()
sort(id3, method="radix")
data.table::timetaken(pt)

它在我的笔记本电脑上完成了18秒。