在R中粘贴字符串的最有效方法是什么? [英] What is the most efficient way to paste strings in R?

查看:0
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆