R'的Julia等价物;s paste()函数

R'的Julia等价物;s paste()函数,julia,Julia,Julia中是否有一个函数的行为类似于R的paste()函数?特别是,如果我们给函数两个向量,它将返回一个向量,该向量包含两个输入向量的元素级串联 我环顾四周,似乎在文档或其他文件中找不到这个问题的答案。John Myles White认为Julia的join()函数是最接近的类似函数,但它似乎只对字符串对起作用,而对字符串向量不起作用 现在,我只使用下面的函数,它在调用join()的元素上循环,但我想知道是否有更好的方法 x=[“aa”、“bb”、“cc”] y=[“dd”,“ee”,“ff”

Julia中是否有一个函数的行为类似于R的
paste()
函数?特别是,如果我们给函数两个向量,它将返回一个向量,该向量包含两个输入向量的元素级串联

我环顾四周,似乎在文档或其他文件中找不到这个问题的答案。John Myles White认为Julia的
join()
函数是最接近的类似函数,但它似乎只对字符串对起作用,而对字符串向量不起作用

现在,我只使用下面的函数,它在调用
join()
的元素上循环,但我想知道是否有更好的方法

x=[“aa”、“bb”、“cc”]
y=[“dd”,“ee”,“ff”]
函数mypaste(v1、v2)
n=长度(v1)
res=数组{ascistring}(n)
对于i=1:n
res[i]=连接([v1[i],v2[i]])
结束
返回res
结束
mypaste(x,y)
运行
mypaste()
将根据需要提供以下输出

3元素数组{ascistring,1}:
“aadd”
“bbee”
“ccff”

有好的选择吗?我是否误解了join()函数?

您可以使用列表理解并获得配对:

julia> x = ["aa", "bb", "cc"];

julia> y = ["dd", "ee", "ff"];

julia> [join(i) for i=zip(x,y)]
3-element Array{ByteString,1}:
 "aadd"
 "bbee"
 "ccff"

可以使用
map
。一行代码是map(join,zip(x,y))。如以下示例所示,它还添加了
z

julia> x = ["aa","bb","cc"];

julia> y = ["dd","ee","ff"];

julia> z = ["gg","hh","ii"];

julia> map(join,zip(x,y,z))
3-element Array{Any,1}:
 "aaddgg"
 "bbeehh"
 "ccffii"

(参见@DSM答案了解列表理解)

我认为我根本不会使用
加入
。Join用于在一个集合中组合字符串;您需要在两个不同集合之间串联字符串。因此,虽然使用
zip
创建
join
所需的临时集合非常简单(高效),但您可以使用
string
函数或乘法来避免:

julia> map(string, x, y)
3-element Array{ASCIIString,1}:
 "aadd"
 "bbee"
 "ccff"

julia> map(*, x, y)
3-element Array{ASCIIString,1}:
 "aadd"
 "bbee"
 "ccff"
更好的是(但可能太聪明了一半),还有广播元素的乘法运算符
*

julia> x .* y
3-element Array{ASCIIString,1}:
 "aadd"
 "bbee"
 "ccff"