2017-03-28 6 views

Antwort

2

Wir können dies tun, mit %in%

df1[!seq_len(nrow(df1)) %in% sapply(df1, which.max),] 
# A B C 
#4 2 1 1 

Wenn es Verbindungen für maximale Werte in jeder Reihe sind, dann tun

df1[!Reduce(`|`, lapply(df1, function(x) x== max(x))),] 
+0

Es sind ti es für maximale Werte. Ihre erste Zeile funktioniert sehr gut, aber die zweite für Bindungen gibt mir eine Fehlermeldung "Fehler in Summary.factor (c) (1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : 'max' nicht sinnvoll für Faktoren " – LucasPG

+0

@LucasPG Ich nahm an, dass Sie nur numerische Spalten haben. Wenn es nicht numerische gibt, ist es nicht sinnvoll, max für diese Spalte zu nehmen. Oder schließen Sie einfach die Spalte – akrun

+0

Right die letzte Spalte ist nicht numerisch.Ich bin sehr begginer mit R, können Sie mir helfen, wie man das macht? – LucasPG

1
df[-sapply(df, which.max),] 
# A B C 
#4 2 1 1 

DATA

df = structure(list(A = c(2L, 4L, 1L, 2L), B = c(3L, 1L, 4L, 1L), 
    C = c(5L, 1L, 3L, 1L)), .Names = c("A", "B", "C"), 
    class = "data.frame", row.names = c(NA,-4L)) 
Verwandte Themen