沒有未來以後 发表于 2020-1-8 15:16:26

R中随机数的产生与数据抽样


在R中有两个函数可以行使类似于Excel中Randbetween()函数的功能,即随机产生一定范围内的数据,或随机抽出一个已知数据集中的样本。

一. 函数Runif()
他的基本语法规则:需要产生的数据数量,最小值,最大值。例如,如果我们需要生成180-240之间的30个数据,就可以通过以下命令达成:
> runif(30,180,240)
192.0022 192.2006 204.1107 221.1253 215.9604 192.2225 235.2146 193.4423 201.3691 208.7605 194.1644 188.8166 226.0488 224.2215 221.4348 222.1139 187.4835 232.1733 225.8749 239.6179 221.8876 226.5466 205.5781 220.3698 223.6541 201.1689 198.7014 203.8504 223.4464 228.6505

如果想要整数,不要小数点后的数字,则需要再套上一层函数ROUND():
> round(runif(30,180,240))
183 180 224 225 209 210 234 205 196 196 234 216 200 190 186 192 219 239 201 232 210 218 200 225 197 237 190 240 207 223

二. 函数sample
顾名思义是样本的意思。它的基本语法规则是:要取样的数据集,取样个数,去重与否。例如,如果我们需要从1:10个数字之间取6个随机样本,不去重,就可以通过以下命令达成:
> sample(1:10,6,replace=T)
3 2 3 4 2 7

如果要去重,则把replace参数改为False:
> sample(1:10,6,replace=F)
7 6 2 1 4 5

End.

jackieecon 发表于 2021-6-13 08:56:02

谢谢分享。
页: [1]
查看完整版本: R中随机数的产生与数据抽样