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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。