sample
位于 base
包(package)。 说明
sample
使用带替换或不带替换的方式从 x
的元素中获取指定大小的样本。
用法
sample(x, size, replace = FALSE, prob = NULL)
sample.int(n, size = n, replace = FALSE, prob = NULL,
useHash = (n > 1e+07 && !replace && is.null(prob) && size <= n/2))
参数
x |
一个或多个可供选择的元素的向量,或者一个正整数。查看具体信息。' |
n |
正数,可供选择的项目数。查看具体信息。' |
size |
一个非负整数,给出要选择的项目数。 |
replace |
抽样是否应该放回? |
prob |
用于获取被采样向量的元素的概率权重向量。 |
useHash |
|
细节
如果 x
的长度为 1,是数字(在 is.numeric
的意义上)和 x >= 1
,则通过 sample
进行采样从 1:x
开始。请注意,当 x
在诸如 sample(x)
等调用中长度不同时,此便利函数可能会导致不良行为。请参阅示例。
否则x
可以是任何R对象为length
并且按整数进行子集化是有意义的:将根据需要调度这些操作的 S3 或 S4 方法。
对于 sample
,size
的默认值是从第一个参数推断的项目数,以便 sample(x)
生成 x
(或 1:x
)元素的随机排列。
允许要求带有 n = 0
或 length-zero x
的 size = 0
样本,但否则需要 n > 0
或正 length(x)
。
n
或 x
的非整数正数值将被截断为下一个最小整数,该整数不得大于 .Machine$integer.max
。
可选的prob
参数可用于给出权重向量,以获取被采样向量的元素。它们的总和不必为一,但应为非负数且不全为零。如果replace
是真的,当有超过 200 个合理可能的值时,使用 Walker 的别名方法(Ripley,1987):这给出的结果与来自的结果不兼容R< 2.2.0。
如果replace
为假,则这些概率按顺序应用,即选择下一个项目的概率与剩余项目的权重成正比。在这种情况下,非零权重的数量必须至少为size
。
sample.int
是一个裸接口,其中 n
和 size
都必须以整数形式提供。
参数 n
可以大于类型 integer
的最大整数,最大可达类型 double
中可表示的最大整数。仅支持均匀采样。使用两个随机数来确保大整数的均匀采样。
值
对于 sample
,长度为 size
的向量,其元素取自 x
或整数 1:x
。
对于 sample.int
,长度为 size
的整数向量,其中元素来自 1:n
,如果是 则为双向量。
例子
x <- 1:12
# a random permutation
sample(x)
# bootstrap resampling -- only if length(x) > 1 !
sample(x, replace = TRUE)
# 100 Bernoulli trials
sample(c(0,1), 100, replace = TRUE)
## More careful bootstrapping -- Consider this when using sample()
## programmatically (i.e., in your function or simulation)!
# sample()'s surprise -- example
x <- 1:10
sample(x[x > 8]) # length 2
sample(x[x > 9]) # oops -- length 10!
sample(x[x > 10]) # length 0
## safer version:
resample <- function(x, ...) x[sample.int(length(x), ...)]
resample(x[x > 8]) # length 2
resample(x[x > 9]) # length 1
resample(x[x > 10]) # length 0
## R 3.0.0 and later
sample.int(1e10, 12, replace = TRUE)
sample.int(1e10, 12) # not that there is much chance of duplicates
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
Ripley, B. D. (1987) Stochastic Simulation. Wiley.
也可以看看
RNGkind(sample.kind = ..)
关于随机数的生成,特别是sample()
结果与R版本3.6.0。
CRAN 包 sampling
用于其他无需替换的加权采样方法。
相关用法
- R save 保存 R 对象
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R search 给出 R 对象的搜索路径
- R solve 求解方程组
- R scan 读取数据值
- R sprintf 使用 C 风格字符串格式化命令
- R stop 停止函数执行
- R sign 标志函数
- R svd 矩阵的奇异值分解
- R strtoi 将字符串转换为整数
- R source 从文件、连接或表达式中读取 R 代码
- R sQuote 引用文字
- R switch 选择替代方案列表之一
- R substitute 替换和引用表达式
- R strrep 重复字符向量的元素
- R split 分组并重新集合
- R slice.index 数组中的切片索引
- R sort 对向量进行排序或排序
- R standardGeneric 形式化方法系统 – 调度 S4 方法
- R sequence 创建序列向量
- R startsWith 字符串是否以另一个字符串开头或结尾?
- R system.file 查找 R 系统文件的名称
- R strwrap 将字符串换行以设置段落格式
- R seek 重新定位连接的函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Random Samples and Permutations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。