2016-11-10 8 views
-1

Entschuldigung für Fragen, die ein einfacher Job sein sollte, bin ich ein Geologie-Student, triing R für seine Arbeit in der Schule zu verwenden.R Zeilen entfernen, die nicht den gleichen Wert in zwei Spalten haben

Ich möchte die Zeilen aus meiner Datenbank entfernen, wo der Wert in zwei bestimmten Spalten nicht übereinstimmen.

Beispiel:

e F 14 14 
t D 14 12 
j A 11 11 
a R 14 13 

So die zweite Reihe entfernt und die vierte als auch sein sollte. Die Spalte mit den Buchstaben sollte nicht relevant sein, nur die zwei mit den Zahlen.

+3

so etwas wie 'df [df $ col3 == df $ col4,]' – HubertL

Antwort

0

nehme Ihre Datenspeicher in df ist, folgendes zu tun:

df <- data.frame(col1= c('e','t','j','a'), 
       col2 =c('F','D','A','R'), 
       col3=c(14,14,11,14), 
       col4=c(14,12,11,13)) 
df <- df[df$col3==df$col4,] 
-1

also die Zeilen übernehmen, die Sie entfernen wollen, ist man 2,3

ist

Die Schlüsselidee einen Satz von der Form Zeilen, die Sie entfernen möchten, und behalten Sie das Komplement dieses Satzes bei.

In R ist das Komplement einer Menge durch den Operator '-' gegeben.

Also, den data.frame unter der Annahme myData genannt:

myData <- myData[-c(2, 3), ] 
0

Einfache subset Betrieb:

new_df <- subset(df, columnX == columnY) 
Verwandte Themen