Wenn ich einen großen Datensatz in R habe, wie kann ich eine Stichprobe der Daten unter Berücksichtigung der Verteilung der Originaldaten nehmen, insbesondere wenn die Daten verzerrt sind und nur 1% Gehören zu einer kleinen Klasse und ich möchte eine voreingenommene Stichprobe der Daten nehmen?Eine unverhältnismäßige Stichprobe aus einem Datensatz in R
Antwort
Die Funktion sample(x, n, replace = FALSE, prob = NULL)
nimmt eine Probe aus einem Vektor x
der Größe n
. Diese Probe kann mit oder ohne Ersatz, und die Wahrscheinlichkeiten für jedes Element auf der Probe Auswählen durch den Benutzer entweder das gleiche für jedes Element oder ein Vektor unterrichtet.
Wenn Sie eine Probe von gleichen Wahrscheinlichkeiten für jedes Element mit 50 Fällen nehmen wollen, alles, was Sie tun müssen, ist
n <- 50
smpl <- df[sample(nrow(df), 50),]
Wenn Sie jedoch von verschiedenen Wahrscheinlichkeiten geben wollen für die Elemente ausgewählt werden, sagen wir mal, Elemente, die SexM hat Wahrscheinlichkeit 0,25, während diejenigen, deren Sex ist F prob 0,75 hat, Sie sh ould do
n <- 50
prb <- ifelse(sex=="M",0.25,0.75)
smpl <- df[sample(nrow(df), 50, prob = prb),]
Wenn ich nicht etwas offensichtliche hier vermisse, bekomme ich 'Fehler in ifelse (sex == "M", 0.25, 0.75): Das Objekt 'Geschlecht' wurde nicht gefunden, wenn versucht wird, das letzte Beispiel auszuführen. – Harry
Ich habe es nur mit 'prob = ifelse (df $ sex ==" M ", 0.25, 0.75)' in der 'Beispiel'-Funktion arbeiten lassen. – Harry
- 1. Alle einzigartigen Proben aus einem Datensatz in R
- 2. Wählen Sie eine zufällige Stichprobe von Ergebnissen aus einem Abfrageergebnis
- 3. Geschichtete Stichprobe in Spark
- 4. eine Spalte aus einem Datensatz zu einem anderen Daten-Set in R hinzufügen
- 5. Wie man eine Stichprobe aus dem Internet macht?
- 6. Wie Informationen aus einem Datensatz in OCaml
- 7. Wie zeichne ich eine systematische Stichprobe aus einer geografischen Population?
- 8. Extraktion von Daten aus einem Datensatz, mit einem anderen in r
- 9. Erstellen einer binären Matrix in R mit einem großen Datensatz
- 10. wie ich (definitiv) 1 Reihe aus meinem Datensatz in R
- 11. SAS Gibt es eine Funktion für die Stichprobe durch Variablen?
- 12. laden hochdimensionalen R-Datensatz in Pandas Dataframe
- 13. Versuch, jeden fünften Datensatz im Iris-Datensatz in R
- 14. R normalisieren einen Datensatz
- 15. Umgang mit einem Eingabe-Datensatz in R Shiny
- 16. Erstelle eine Bookmark-Datei aus einem klassischen Mac Alias-Datensatz
- 17. eine verschachtelte dict Struktur in einem Datensatz
- 18. eine Datentabelle in einem Datensatz Hinzufügen
- 19. Schnelle beliebige Verteilung zufällige Stichprobe
- 20. Subtrahieren mehrere Zeichenfolgen aus einem Datensatz
- 21. Python Pandas Auswahl zufälliger Stichprobe von Gruppen aus Groupby
- 22. Pairing-Elemente aus einem Index in R
- 23. Merge-Datensatz ohne Duplikate R
- 24. Größe der Stichprobe in Random Forest Regression
- 25. Ähnliche Datenpunkte aus Datensatz
- 26. Daten aus verschiedenen Datensätzen in einem Datensatz mit Access 2003
- 27. Ausreißer in einem Datensatz finden
- 28. Kann jemand ein Datum aus einem Datensatz in Java extrahieren?
- 29. Effiziente Methode zum Erstellen rekursiver Schätzungen außerhalb der Stichprobe zur Berechnung von RMSE in R
- 30. Return Gewinner des Fußballspiels aus einem geschmolzenen Datensatz
Importieren Sie die Daten, finden Sie die Gewichte für Ihre "Ebenen" und lassen Sie "Sample" kümmern sich um den Rest. Es würde helfen, wenn Sie Ihre Frage eingrenzen könnten (mit mindestens Beispieldaten - http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). –
Siehe auch http://StackOverflow.com/questions/2923092/how-do-i-sub-sample-data-by-group-using-ddply –