मेरे पास 10k पंक्तियों वाला डेटा फ्रेम है, किसी दिए गए कॉलम एक्स के लिए मेरे पास डुप्लिकेट मान हैं, हम इस कॉलम में केवल इस पंक्ति वाले यादृच्छिक रूप से केवल एक पंक्ति का चयन करने के लिए कैसे कर सकते हैं?अद्वितीय पंक्तियों के लिए यादृच्छिक रूप से डेटा फ्रेम पर चयन करें
5
A
उत्तर
6
आपका प्रश्न पूरी तरह से स्पष्ट नहीं है, लेकिन मुझे लगता है कि आप "डेटा डुप्लिकेट क्लास" प्रति एक (यादृच्छिक रूप से चुनी गई) पंक्ति को रखते हुए, संपूर्ण डेटा फ्रेम को कम करना चाहते हैं।
library(plyr)
subsampled_data <- ddply(mydata,.(X),
function(x) {
x[sample(nrow(x),size=1),]
})
की तरह कुछ काम करना चाहिए (परीक्षण नहीं!)
6
मेरी पहली वृत्ति बेन सुरुचिपूर्ण ddply
समाधान की तरह कुछ हो गया होता। हालांकि, अब यह जानकर कि आपके पास इतना बड़ा डेटा सेट है, निश्चित रूप से तेज़ तरीके हैं।
RemoveDups <- function(df, column) {
inds = sample(1:nrow(df))
df = df[inds, ]
dups = duplicated(df[, column])
df = df[!dups, ]
inds = inds[!dups]
df[sort(inds, index=T)$ix, ]
}
कुछ डेटा (यहाँ कई अद्वितीय मूल्यों के साथ) अनुकरण:
> system.time(ddply(data, 'X1', function(x) x[sample(nrow(x), size=1), ]))
user system elapsed
3.264 0.921 4.315
> system.time(RemoveDups(data, 'X1'))
user system elapsed
0.375 0.025 0.399
:
n.row = 10^6
n.col = 3
set.seed(12345)
data = data.frame(matrix(sample(1000, n.row*n.col, replace=T), nrow=n.row))
2 तरीकों की तुलना करें यहाँ एक है कि कई गुना तेजी से अगर आप कई अद्वितीय मान हो जाएगा
+0
सुरुचिपूर्ण! बहुत बढ़िया, धन्यवाद जॉन – Rad
संबंधित मुद्दे
- 1. डेटा फ्रेम
- 2. डेटा फ्रेम की पंक्तियों पर मानचित्रण
- 3. डेटा फ्रेम के पंक्तियों के जोड़े पर संचालित
- 4. आर में, डेटा फ्रेम से पंक्तियों का चयन वेक्टर के रूप में डेटा को वापस क्यों करता है यदि डेटा फ्रेम में केवल एक कॉलम है?
- 5. संसाधनों से यादृच्छिक रूप से चयन कैसे करें (R.drawable.xxxx)
- 6. डेटा फ्रेम
- 7. अद्वितीय मानों के सेट से एक अद्वितीय यादृच्छिक सबसेट चुनें
- 8. गैर "अद्वितीय" पंक्तियों
- 9. पंक्तियों के रूप में कॉलम का चयन कैसे करें?
- 10. दो डेटा फ्रेम पर लागू करें
- 11. डेटा फ्रेम
- 12. डेटा फ्रेम
- 13. केकफ़्पी - डेटाबेस से यादृच्छिक चयन करें और
- 14. डेटा का यादृच्छिक वितरण
- 15. आर: समय से संबंधित डेटा फ्रेम
- 16. ऑरैकल डेटाबेस से यादृच्छिक रूप से रिकॉर्ड कैसे प्राप्त करें?
- 17. आर के डेटा फ्रेम से डाटा टेबल पर पोर्टिंग सेट ऑपरेशंस: डुप्लिकेट पंक्तियों की पहचान कैसे करें?
- 18. बेवकूफ: एन-अलग मैट्रिक्स में यादृच्छिक रूप से विभाजित/मैट्रिक्स का चयन कैसे करें
- 19. किसी अन्य डेटा फ्रेम की सामग्री के आधार पर डेटा फ्रेम सब्सक्राइब करना
- 20. आवृत्ति के साथ यादृच्छिक रूप से आइटम का चयन करने के लिए कुशल एल्गोरिदम
- 21. यादृच्छिक रूप से जावा
- 22. पंक्तियों द्वारा डेटा फ्रेम को कैसे विभाजित करें, और फिर ब्लॉक को संसाधित करें?
- 23. डेटा फ्रेम
- 24. एसक्यूएल: * अलग * पंक्तियों के मूल्यों के आधार पर पंक्तियों का चयन करने के लिए "नहीं" विकल्प?
- 25. स्वचालित रूप से यादृच्छिक डेटा के साथ आदिम गुण भरें?
- 26. MySQL अद्वितीय मानों का चयन
- 27. आर में, आप डेटा फ्रेम की पंक्तियों पर वास्तव में तेजी से कैसे लूप करते हैं?
- 28. डेटा फ्रेम
- 29. ग्रहण यादृच्छिक रूप से
- 30. डेटा फ्रेम
ओपी (क्रिप्टिक) प्रश्न की यह व्याख्या मेरे मुकाबले अधिक संभावना प्रतीत होती है, जिसके लिए मैं 'डीएफ [नमूना (जो (डीएफ $ एक्स == myVal), 1), सुझाव देने का सुझाव दे रहा था। – joran
धन्यवाद दोस्तों, मैं बेन के सुझाव की कोशिश कर रहा हूं, जोरन, अगर मैं इसे सभी कॉलम मूल्य पर लागू करना चाहता हूं तो कैसे करें क्योंकि मेरे स्निपेट में सुझाए गए माईवल मेरे कॉलम एक्स के साथ बदलते हैं, जिसका अर्थ है कि मेरे पास उदाहरण के लिए सैकड़ों 5 हैं और सैकड़ों 8 एस आदि आदि – Rad
@ रैड बेन का समाधान इसे संभालेगा; मेरा नहीं होगा हमने आपके प्रश्न को अलग तरीके से व्याख्या की। – joran