【问题标题】:What's Julia's equivalent of R's replicate and rep?Julia 相当于 R 的复制和代表?
【发布时间】:2018-09-26 13:15:15
【问题描述】:

在 R 中 replicate(n, expr) 重复运行 expr 表达式 n 次,而 rep(value, n) 重复 value n 次。

Julia 相当于 R 的 replicaterep

例如。在R

rep(1:3, 3) 产生c(1:3, 1:3, 1:3)

并且replicate(3, runif(1)) 从均匀分布中生成 3 个随机数(即它运行了 runif(1) 3 次。

【问题讨论】:

  • fill(value, n) 是指“重复值 n 次”吗?
  • 不确定你真正需要什么,你能写一个简单的例子吗?但似乎repeat 是最接近的:replicate->repeat(1:5, inner=(1,5))rep-> repeat(1:5, outer=(2,1))
  • @Gnimuc 添加了 R 示例
  • 您也可以使用迭代器,例如,ncycle 来自 IterTools.jlrepeated 来自 Base.Iterators。这样您就不必实际创建更大的结构,这样可以在不需要时节省内存分配。
  • 我从不使用 R,所以从外行的角度来看,rep(v,n) 等价于 repeat(v, inner=(1,n))replicate 等价于 for 循环或数组推导 [rand() for i = 1:n]

标签: julia


【解决方案1】:

我可能迟到了,但这里有一些 R 和 Julia 代码结合了 cmets 的建议:

# R version 3.5.1 of rep function
> rep(1:3, 3)
[1] 1 2 3 1 2 3 1 2 3

# Julia version 1.0.0 of repeat function
julia> repeat(1:3, 3)
9-element Array{Int64,1}:
 1
 2
 3
 1
 2
 3
 1
 2
 3

# R version 3.5.1 for replicate function
> replicate(3, runif(1))
[1] 0.3849424 0.3277343 0.6021007

# Julia version 1.0.0 of an array comprehension
julia> [rand() for i in 1:3]
3-element Array{Float64,1}:
 0.8076220876500786
 0.9700908450487538
 0.14006111319509862

【讨论】:

    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2014-04-24
    • 1970-01-01
    • 2021-09-14
    • 2015-05-17
    相关资源
    最近更新 更多