Vorhandene Funktion, um zu sehen, ob eine Zeile in einem Datenrahmen existiert?

7

Gibt es eine existierende Funktion um festzustellen, ob eine Zeile in einem Datenrahmen existiert? Ich denke, könnte eine Bewerbung / identisch, aber es scheint, als ob ich etwas vermisse.

Zum Beispiel:

einen solchen Datenrahmen gegeben:

%Vor%

Gibt es eine bestehende Funktion, mit der ich testen kann, ob die Zeile (1, cat) im Datenrahmen existiert?

Danke, Zach

    
Zach 06.05.2011, 20:47
quelle

6 Antworten

4

Für Daten von @Marek antworten.

%Vor%     
Wojciech Sobala 07.05.2011, 15:18
quelle
16

Probieren Sie match_df von plyr aus (unter Verwendung von Mareks Beispieldaten):

%Vor%     
hadley 07.05.2011 00:10
quelle
6

Nehmen Sie Ihr Beispiel:

%Vor%

Dann

%Vor%

gibt Ihnen eine Antwort.

    
Marek 06.05.2011 21:10
quelle
1

Ich schlage Ben Bolkers Lösung vor , da nrow(merge(row_to_find,X))>0 solution bei mir nicht funktioniert (true immer angeben):

%Vor%     
Laurent Camus 26.03.2017 14:30
quelle
0

Für Vektor, y, mit der gleichen Anzahl von Elementen wie Spalten im Datenrahmen, dfrm:

%Vor%

Sollte einen Vektor von TRUE und FALSE zurückgeben, der wiederum als Index in [,]

verwendet werden könnte %Vor%

Die Funktion identical ist wahrscheinlich zu streng, da sie auch Attribute überprüft.

%Vor%     
42- 06.05.2011 21:03
quelle
0

Für Fans von dplyr und% tidyverse kannst du dplyr:anti_join() verwenden. Gemäß seiner Dokumentation gibt dplyr::anti_join(x, y) "alle Zeilen von x zurück, wenn keine übereinstimmenden Werte in y vorhanden sind, wobei nur Spalten von x beibehalten werden." Also für dplyr::anti_join(row, df) hat das Ergebnis null Zeilen, dann war row tatsächlich in df , wenn es eine Zeile hat, dann war row nicht in df .

%Vor%     
Rory Nolan 09.02.2018 16:32
quelle

Tags und Links