簡體   English   中英

隨機采樣而無需替換另一個變量中的一個變量:在{plyr}軟件包中使用ddply()functin-R

[英]Random sampling without replacement of one variable within another variable: Using ddply() functin in {plyr} package - R

我真的一直在為這個問題絞盡腦汁,而且還沒有合適的解決方案。

我有一個數據集,無論對象(項目)如何,我都試圖在另一個變量(位置)內置換一個變量(屬性)。

以下是數據片段:

         ID_FIELD   SPCD       Total
              1177   833  428.286591
             11383   691 1175.846712
             24081   316  137.042979
             11383   318  177.335481
              1177    71  166.629921
             24081   110 1170.012216
              1177    12    8.379811
             30284   541  585.039300
             24081   746  188.808428
             24081   531  196.142482
              1177   111   47.258113
              1177    12  198.443376
             11383   827   16.095224

在R版本3.2.0中,使用plyr包中的ddply()函數,我提交了以下代碼:

ddply(data,.(Total,ID_FIELD),sample)

在這里,我試圖在ID_FIELD (位置)內的SPCD (項)中ID_FIELD Total (屬性),並在順序運行兩次ddply()代碼后,結果與之前完全相同,這不是我的結果想。 我希望此過程在每次運行該函數時都隨機化(例如,每次提交ddply()ddply()Total進行新的改組)。

關於如何實現這一目標的任何線索? 鑒於該應用程序具有大型數據集,因此也希望能夠進行快速處理。 我沒辦法。

非常感謝。

使用plyr:

ddply(data, .(ID_FIELD), function(df) df[sample(nrow(df)),])

使用提供了采樣功能的dplyr:

library(dplyr)
data %>% group_by(ID_FIELD) %>% sample_frac

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM