【问题标题】:rep function in RR中的rep函数
【发布时间】:2012-08-05 22:04:44
【问题描述】:

当我表演时:

rep(1:4, rep(4,4))

我明白了

1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 

这是预期的。但是当我尝试将长度固定为 16(这是输出的长度)时,如下所示:

rep(1:4, rep(4,4), length.out = 16)

我明白了

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

这很奇怪。我认为这两个命令都应该执行相同的功能。有人可以帮忙吗?

谢谢!

【问题讨论】:

  • 你看过帮助页面?rep

标签: r rep


【解决方案1】:

来自?rep

'length.out' 可以代替'times',在这种情况下'x' 重复多次,以创建一个向量 这个长度。如果两者都给出,“length.out”优先, “次”被忽略。

【讨论】:

  • 但是看看each 参数,看看它是否给出了你想要的输出。
  • 感谢 GSee。我没有阅读整个帮助文档。然而,困扰我的是,如果我指定 rep(1:4, each = 4, length = 20),那么我得到 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 1 1 1 1 但我猜如果 each=4 被替换为 rep(4,4),那么print 方法是不同的,尽管 each 和 rep() 在这里应该实现相同的目的。谢谢!
  • 你需要仔细阅读?repprint 方法是什么意思? rep(1:4, each = rep(4,4), length = 20) 给你一个不言自明的警告(特别是如果你阅读了帮助!)
【解决方案2】:

rep(1:4,,rep(4,4),length.out=16) 将给出您正在寻找的结果。更简单的写法是rep(1:4,,16,4)

【讨论】:

  • 技术上是正确的,但是啊!使用命名参数而不是占位符的更好做法 (,,)
  • 我不确定这是否技术上正确。它适用于我正在输入的计算机上的 R 实例(几年前:2.15),但我收到一条警告消息,表明这只是偶然的(“警告:'每个'参数使用的第一个元素” )。此外,前两个参数的顺序根本没有记录,所以我认为不能保证它不会在未来的版本中中断。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多