2016-03-07 76 views
0

我有一個x條目的數據集,我需要重新採樣到y條目,其中y是一個小於x的數字。我的數據集不是一系列數字,而是x行,我需要重新採樣時的整行信息。重新採樣x行數據集

我知道sample()函數,但鑑於我的數據集不是矢量,我不清楚應該如何寫入確切的代碼。

任何幫助,將不勝感激!

+1

嘗試採取.names「或來自'1:nrow(object)'的樣本。 – nrussell

+2

^使得這個更加明確:'my_data_frame [sample(nrow(my_data_frame),10),]'給出'my_data_frame'中的10個隨機行。 – arvi1000

+2

當您提供樣本數據以複製和粘貼審閱者時,問題運行得更順暢。隨意編輯一些示例數據來玩。歡迎來到SO – jxramos

回答

0

的想法是,要採樣行的索引,然後用它來拉回來的所有列的那些行,像這樣:對象的`行的樣品

set.seed(4444) # for reproducibility 
data(iris) 

x <- nrow(iris) 
y <- 7 

irisSubset <- iris[sample(x,y),] 
+0

請注意,這是沒有更換的抽樣。如果你正在做bootstrap重採樣,你應該執行'replace = TRUE' – C8H10N4O2