如果在R中尚不存在将元素添加到向量的最快方法

Tom*_*ers 2 r vector unique

我正在寻找R中最快的方式来将元素(字符类型)添加到向量中(如果尚不存在)。现在我只是

vect=c("a","b","c")
vect=unique(c(vect,"b"))
vect=unique(c(vect,"d"))
Run Code Online (Sandbox Code Playgroud)

等等

但我认为必须有更好的方法来做到这一点。有什么想法吗?(我的向量有大约200万个字符串(网络URL))

干杯,汤姆

Sim*_*lon 5

特殊编写的%chin%运算符from data.table可以快速处理字符向量。这是一个例子:

#  Your data, and we would like to add elements from add
#  that are not already in vect
vect <- c("a","b","c")
add <- c( "a" , "d" , "e" , "b" )

#  Load package
require( data.table )

# %chin% operator is smae as %in% but fast and optimised for character sequences
c( vect , add[ ! add %chin% vect ] )
[1] "a" "b" "c" "d" "e"
Run Code Online (Sandbox Code Playgroud)