2017-03-09 1 views
-1

Ich habe einen Datensatz, der wie folgt aussieht. Wie kann ich nur die IDs auswählen, für die mindestens 10 Bewertungen vorhanden sind? Der Datensatz ist ziemlich groß und ich möchte nicht jede ID auswählen, abgesehen von wenigen Berichten über ein Bier, die keinen klaren Einblick bieten.Wählen Sie nur die Biere, die mindestens N Bewertungen haben

beer_beerid review_profilename  review_overall 
    48215   stcules    3.0 
    52159   oline73    3.0 
    52159  alpinebryant    3.0 
    52159   rawthar    4.0 
    52159  RangerClegg    3.5 

Antwort

0

Viele Möglichkeiten, dies zu tun, Carles hat eine feine Basis R Lösung. Mit dplyr könnten Sie tun:

library(dplyr) 
df %>% group_by(beer_beerid) %>% filter(n() > 9) 
0

Hier haben Sie einen möglichen Ansatz.

Sie benötigen einen Vektor von TRUE/FALSE Werte, die angeben, welche Zeilen eine ID mehr als 10 Mal wiederholt haben. Dann indexieren Sie damit df.

table(df$beer_beerid) wird die Anzahl der verschiedenen beer_beerid zurückgeben. Von diesem können Sie diejenigen nehmen, die die 10 sind.

which(table(df$beer_beerid) > 10). Gibt jene Bieriden zurück, die mehr als 10 mal wiederholt werden.

Schließlich können Sie Index Sie df:

df[df$beer_beerid == which(table(df$beer_beerid) > 10), 
+0

Danke Jungs! Während der Befehl dplyr ordnungsgemäß ausgeführt wurde, wurde mit dem folgenden Befehl der Fehler ausgelöst: Die längere Objektlänge ist kein Vielfaches der kürzeren Objektlänge. Allerdings habe ich mich gefragt, ob die richtige N (9 oder 10 oder 15 usw.) mit Visualisierung durch ggplot erreicht werden kann oder nicht! –

Verwandte Themen