Ich habe einen Datenrahmen df
eine Zeile auswählen, basierend auf zwei weiteren Säulen R
df = data.frame(L = rep(letters[1:6], each = 2),
M = rep(letters[7:12]),
freq = sample(c(5, 10), replace = FALSE))
L M freq
1 a g 5
2 a h 10
3 b i 5
4 b j 10
5 c k 5
6 c l 10
7 d g 5
8 d h 10
9 e i 5
10 e j 10
11 f k 5
12 f l 10
ich die am häufigsten M für jeden L.
In diesem Beispiel wählen wollen würde die Ausgabe zeigen:
h, j, l, h, j, l
Frequenz ist nicht unbedingt jeder zweite Wert im eigentlichen Problem.
Wie kann ich das einfach machen?
Ich habe versucht, eine tapply
Ansatz, aber hier stecken bleiben, weil dies scheint nur für Variablen gelten und kann nicht verwendet werden, um eine Teilmenge Datenrahmen Subset. (Dies führte nicht alles in der Nähe, damit ich nicht den Ansatz schreiben)
Eine Basis-R-Option zusätzlich zu denen aus der verknüpften Frage wäre 'mit (df [Reihenfolge (-df $ freq),], M [! Dupliziert (L)]) ' –
@docendodiscimus vielleicht Antwort im Zielbeitrag hinzufügen/aktualisieren? – zx8754