2017年1月12日 星期四

使用R語言做抽樣

在R裡面用sample這個函式可以做抽樣,假設母群體是A, ..., Z 這26個大寫的英文字母:
  • sample(LETTERS, 1)
  • sample(LETTERS, 5)
  • sample(LETTERS)
依序是隨機一個字母、隨機抽5個字母。最後是隨機抽樣,將26個字母都抽出來,因此抽出來的排序每次都不一樣(random permutation)。

若是要做bootstrapping抽樣,也就是說從母群體抽出來以後又放回去繼續參加抽樣(random sampling with replacement),那只要多設一個replace參數如下:
  • sample(LETTERS, 5, replace=TRUE)

若要從一個data frame裡面隨機挑選一定數量的列出來分析,以內建預設的變數mtcars來說,下面指令會隨機挑5輛車出來:
  • mtcars[sample(nrow(mtcars),5),]

最後注意到,上面的抽樣都會有一個random seed,每次抽樣完後這個seed2都不一樣。但如果是在測試程式的時候,想要每次的seed都一樣,那可以參考這篇HOW TO TAKE SAMPLES FROM DATA IN R文章裡面,手動設定seed:
  • set.seed(1)


_EOF_

1 則留言: