Julia相当于R的paste()函数

pau*_*tey 7 julia

Julia中的paste()函数是否像R的函数一样?特别是,如果我们给函数赋予两个向量,它将返回一个带有两个输入向量的逐元连接的向量.

我环顾四周,似乎无法在文档或其他方面找到答案.约翰·迈尔斯·怀特(John Myles White)的一篇较老的帖子表明,朱莉娅的join()函数是最接近的模拟,但它似乎只对字符串对起作用,而不是字符串向量上的元素.

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

x = ["aa", "bb", "cc"]
y = ["dd", "ee", "ff"]

function mypaste(v1, v2)
    n = length(v1)
    res = Array{ASCIIString}(n)
    for i = 1:n
        res[i] = join([v1[i], v2[i]])
    end
    return res
end

mypaste(x, y)
Run Code Online (Sandbox Code Playgroud)

运行mypaste()根据需要为我们提供输出.

3-element Array{ASCIIString,1}:
 "aadd"
 "bbee"
 "ccff"
Run Code Online (Sandbox Code Playgroud)

有没有好的选择?我误解了这个join()功能吗?

Mat*_* B. 10

我认为我根本不习惯join.Join用于在一个集合中组合字符串; 你是在两个不同集合中连接字符串之后.所以,虽然很容易(高效的)来创建你需要临时藏品joinzip,您可以通过使用避免它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"
Run Code Online (Sandbox Code Playgroud)

更好(但可能太聪明一半),有广播元素乘法运算符.*:

julia> x .* y
3-element Array{ASCIIString,1}:
 "aadd"
 "bbee"
 "ccff"
Run Code Online (Sandbox Code Playgroud)