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用于在一个集合中组合字符串; 你是在两个不同集合中连接字符串之后.所以,虽然很容易(高效的)来创建你需要临时藏品join
有zip
,您可以通过使用避免它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)