【问题标题】:replicating and iterating in R在 R 中复制和迭代
【发布时间】:2014-02-18 06:21:04
【问题描述】:

这行代码rep(c(0), 2) 创建

    x
1   0
2   0

我想以某种适合 R 的方式扩展它,以便最终得到类似于下面的向量的东西。基本上,我想像这样成对地附加整数:

    x
1   0
2   0
3   1
4   1
5   2
6   2

我觉得这是 R 不喜欢循环的一个例子,它有意想不到的副作用,让简单的事情看起来不熟悉,让我渴望其他语言的其他工具,比如 Python 中的 numpy。

以这种方式迭代和递增的最佳方式是什么?

【问题讨论】:

  • rep(0:2, each=2) ?
  • rep 功能很强大,而且是这么常用的功能,example(rep) 值得一看。

标签: r loops replicate


【解决方案1】:

复制 Nishanth 的答案,这正是您想要的。

rep(0:2, each=2)

【讨论】:

    【解决方案2】:
    data.frame(x = unlist(lapply(0:2, rep, 2)))
    

    【讨论】:

    • 我不明白为什么这被否决了。好的,这不是一个非常有效的方法,但它会产生正确的结果。
    • 感谢您的支持。说实话,这样的方法:data.frame(x = sort(rep(0:2, each=2))) 应该更有效
    • 不需要sort
    • 好的,我遇到了问题。我总是将“rep”与“times”一起使用。我从未将它与“每个”一起使用。这就是我建立这种低效方法的原因。
    猜你喜欢
    • 2016-06-29
    • 1970-01-01
    • 2013-07-15
    • 2020-03-04
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多