从向量的每个元素中随机抽样

时间:2017-07-18 07:14:41

标签: r

假设我有一个数字向量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,   样品

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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