【问题标题】:Attempting to generate a list in R using replicate尝试使用复制在 R 中生成列表
【发布时间】:2019-03-21 21:41:40
【问题描述】:

我正在通过我目前正在学习的 EdX 课程在 DataCamp 中进行练习。

我遇到的具体问题要求我创建一个列表 (l),其中包含剩余游戏中所有可能的结果。

剩余比赛场数为:

n <- 6

我在这里有一个简单的向量结果,其中 0 代表输,1 代表赢。

outcomes <- c(0,1)

现在,我正在努力解决的问题的具体部分是:“将变量 l 分配给所有剩余游戏中所有可能结果的列表。使用 rep 函数创建 n 场比赛的列表,其中每场比赛由列表(结果)组成”

这是我的代码:

l <- replicate(n, sample(outcomes, n, replace=TRUE))

现在,我认为我最大的问题是,当我应该生成可能的游戏总数时,我只生成了 n 数量的游戏。我不完全确定如何做到这一点,即使在查看了文档之后,我也被卡住了一段时间。

感谢您的任何帮助。另外,对于这类问题,这是适当的礼仪吗?

【问题讨论】:

  • 如果您熟悉 expand.grid,您可以重复六次单场比赛结果,然后将其传递到那里作为开始,rep(list(0:1), 6)。顺便说一句,rep 和 replicate 是不同的函数,您可以将正确的长度计算为 length(outcomes)^n,如果不确定原因,请查看“计数的基本原理”
  • 您是否正在寻找n=6 游戏的所有可能结果(0,1),例如000000000001000010、...、 111111 ?
  • 我可能很傻,但我不清楚 Datacamp 问题想要什么。如果他们的目标是写一个令人困惑的问题,那么他们就成功了。
  • 哇哦!我完全错过了它们可能具有不同的功能,但是您说得对,这很有帮助。非常感谢。
  • 是的,尼山。我正在寻找 n 行的 0 和 1 的所有组合。

标签: r replicate


【解决方案1】:

我们可以通过使用rep()expand.grid() 的结果列表来获得所有可能的结果:

n = 6
outcomes = c(0,1)
l = rep(list(outcomes), n)
> expand.grid(l)
   Var1 Var2 Var3 Var4 Var5 Var6
1     0    0    0    0    0    0
2     1    0    0    0    0    0
...
63    0    1    1    1    1    1
64    1    1    1    1    1    1

【讨论】:

  • 啊!这很有帮助。我以为我会通过使用 rep 来查看整个列表,但我发现您需要在 l 上使用 expand.grid 。我最初对如何使用 expand.grid 有正确的想法,但这清除了一切。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 1970-01-01
  • 2022-08-11
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多