在R中粘贴字符串的最有效方法是什么? [英] What is the most efficient way to paste strings in R?
本文介绍了在R中粘贴字符串的最有效方法是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个非常大的向量,我需要用一个分隔符连接起来,以形成唯一的ID。例如:
set.seed(1)
vec1 <- sample(1:10, 10000000, replace = T)
vec2 <- sample(1:1000000000, 10000000))
我当前使用的是pste0():
system.time({
uniq_id <- paste0(vec1, "_", vec2)
})
然而,由于Vec1和Vec2的大小,这是相当慢的。是否有性能更好的替代方法?
推荐答案
更有效的方法是stringi::stri_c
library(microbenchmark)
b <- microbenchmark(
paste = paste0(vec1, "_", vec2),
stringi = stringi::stri_c(vec1, vec2, sep = "_"),
times = 10
)
结果
b
#Unit: seconds
# expr min lq mean median uq max neval cld
# paste 5.475398 5.509957 5.544477 5.542728 5.566904 5.632173 10 b
# stringi 3.862541 3.871826 3.896242 3.897264 3.914894 3.934175 10 a
这篇关于在R中粘贴字符串的最有效方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文