【问题标题】:Randomly sampling from each element of a vector从向量的每个元素中随机采样
【发布时间】:2017-07-18 07:14:40
【问题描述】:

假设我有一个数字向量X

X <- c(1,42,1,23,5,7)

我想创建另一个具有相同数量元素的向量Y,每个向量都是从一个序列中随机生成的整数,其中 1 是下限,X 中的元素是上限例如,Y[2] 的数字是从 1 到 42 之间随机生成的数字,Y[4] 的数字是从 1 到 23 之间随机选择的。

我已经尝试使用 apply 函数来做到这一点

Y<-apply(C, 1, sample)

但我没有运气并生成错误消息

apply(X, 1, sample) 中的错误:dim(X) 必须具有正长度1, 样本

有没有更好的方法来做到这一点?

【问题讨论】:

    标签: r


    【解决方案1】:

    您不能将apply 用于向量,而只能用于多维对象(例如矩阵)。您必须改用sapply。此外,您需要参数size = 1,因为您想为X 的每个条目采样一个值。

    sapply(X, sample, size = 1)
    [1]  1  7  1 16  3  6  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-21
      相关资源
      最近更新 更多