Gibt df mit Spalten zurück, die mehrfach vorkommen [duplizieren]

8

Ich habe einen Datenrahmen df, und ich versuche, alle Zeilen, die einen Wert in der Spalte B haben, mehr als einmal im Datensatz zu unterteilen.

Ich habe versucht, die Tabelle zu verwenden, aber ich habe Probleme mit der Unterteilung aus der Tabelle:

%Vor%

Dann versuche ich es mit Hilfe von:

zu unterteilen %Vor%

Und ich bekomme den Fehler

  

"Fehler in x [Teilmenge & amp;! is.na (Teilmenge)]:     Objekt des Typs 'closure' ist keine Teilmenge "

Wie kann ich meinen Datenrahmen mit Tabellenzählwerten unterteilen?

    
Chris Robles 01.07.2014, 05:52
quelle

3 Antworten

16

Hier ist eine dplyr Lösung (mit mrFlicks data.frame)

%Vor%

Oder verwenden Sie data.table

%Vor%

Oder mit Base R

%Vor%     
mnel 01.07.2014 06:17
quelle
6

Darf ich Ihnen einen alternativen, schnelleren Weg vorschlagen, dies mit data.table zu tun?

%Vor%

(oder) Sie können .I (eine weitere spezielle Variable - siehe ?data.table ) koppeln, die die entsprechende Zeilennummer in df zusammen mit .N wie folgt angibt:

%Vor%

(oder) werfen Sie einen Blick auf @ mnels anderen für eine andere Variante (verwenden Sie noch eine weitere spezielle Variable .SD ).

    
Mike.Gahan 01.07.2014 05:57
quelle
5

Die Verwendung von table() ist nicht die beste, weil Sie sie dann wieder in die ursprünglichen Zeilen von data.frame einfügen müssen. Die Funktion ave erleichtert das Berechnen von Werten auf Zeilenebene für verschiedene Gruppen. Zum Beispiel

%Vor%

Hier wird für jede Ebene von b die Länge von b gezählt, was wirklich nur die Anzahl von b ist und für jeden Wert in die entsprechende Zeile zurückgibt. Dann verwenden wir das zur Untermenge.

    
MrFlick 01.07.2014 06:08
quelle

Tags und Links