[英]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.