【问题标题】:Creating a list of random vectors in R在 R 中创建随机向量列表
【发布时间】:2014-02-27 17:12:16
【问题描述】:

我正在尝试创建一个包含 1000 个条目的列表,其中列表的每个条目都是一个随机向量。在这种情况下,向量应该是从整数 1 到 100 中选择的 10 个整数。我想避免在循环中这样做。

如果我运行以下命令,这不会再次采样,而只是在列表的所有 1000 个条目中复制样本:

list.of.samples <- rep(list(sample(1:100,size=10)),1000)

我是否缺少一种简单的方法来矢量化这 1000 个样本的生成并将它们存储在一个列表中?

【问题讨论】:

    标签: r random vector


    【解决方案1】:

    创建带有字母的向量:

    library(wakefield)
    c = lower(10, k=3)   # generates 10 random letters from the first 3
    c
    #> "b" "a" "a" "a" "a" "b" "c" "b" "a" "b"
    

    【讨论】:

      【解决方案2】:

      在这种情况下,我经常使用replicate 函数:

      list.of.samples <- replicate(1000, sample(1:100,size=10), simplify=FALSE)
      

      它反复计算第二个参数。设置simplify=FALSE 意味着你得到一个列表,而不是一个数组。

      【讨论】:

        【解决方案3】:

        rep 将重复给出的任何内容。 lapply 应该做你想做的。

        list.of.samples = lapply(1:1000, function(x) sample(1:100,size=10))
        

        【讨论】:

          猜你喜欢
          • 2011-10-20
          • 1970-01-01
          • 2011-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多