如何对实数进行采样?
How do I sample real numbers?
是否可以使用sample()
函数对实数进行采样? (即,从连续分布中抽样,例如 [1,10],这样当我抽样时,我不会得到整数而是实数,例如 5.467。)
如果没有,是否有其他功能可以做到这一点?
sample
的目的是......从有限集中均匀或不均匀地抽样,有无放回。
如果你想要来自另一种分布的样本,这取决于分布,R 中有很多函数可以实现这一点。最常见的是 runif
(有界区间上的均匀分布)和 rnorm
(正态分布)。
参见 ?sample
and ?Distributions
in the documentation. A more comprehensive list can be found here。
例如:
带替换的统一样本,来自 {1, 2, 3, 4}:
> sample(1:4, 10, replace=T)
[1] 3 1 4 1 2 1 1 3 4 3
来自 [0, 1] 的均匀样本:
> runif(10)
[1] 0.6529710 0.1977511 0.7946746 0.6351793 0.9518663
0.9356524 0.2945506 0.4623502 0.8198065 0.8516961
均值为 0 方差为 1 的正态样本:
> rnorm(10)
[1] -1.13195127 0.43434313 -0.44183752 0.13632993 0.75902968
0.76079877 0.37919727 0.41350485 0.76233633 0.09400158
这些函数可以采用参数:例如,runif(n, a, b)
从区间 [a, b] 中产生 n
个样本。
是否可以使用sample()
函数对实数进行采样? (即,从连续分布中抽样,例如 [1,10],这样当我抽样时,我不会得到整数而是实数,例如 5.467。)
如果没有,是否有其他功能可以做到这一点?
sample
的目的是......从有限集中均匀或不均匀地抽样,有无放回。
如果你想要来自另一种分布的样本,这取决于分布,R 中有很多函数可以实现这一点。最常见的是 runif
(有界区间上的均匀分布)和 rnorm
(正态分布)。
参见 ?sample
and ?Distributions
in the documentation. A more comprehensive list can be found here。
例如:
带替换的统一样本,来自 {1, 2, 3, 4}:
> sample(1:4, 10, replace=T)
[1] 3 1 4 1 2 1 1 3 4 3
来自 [0, 1] 的均匀样本:
> runif(10)
[1] 0.6529710 0.1977511 0.7946746 0.6351793 0.9518663
0.9356524 0.2945506 0.4623502 0.8198065 0.8516961
均值为 0 方差为 1 的正态样本:
> rnorm(10)
[1] -1.13195127 0.43434313 -0.44183752 0.13632993 0.75902968
0.76079877 0.37919727 0.41350485 0.76233633 0.09400158
这些函数可以采用参数:例如,runif(n, a, b)
从区间 [a, b] 中产生 n
个样本。