Ich habe einen Datenrahmen:in R Duplikate von Spalte 1 und Filter finden, indem nicht NA Spalte 3
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
c <- c(1,NA,2,4,NA,1,2,2)
df <-data.frame(a,b,c)
Ich habe einen Datenrahmen mit einigen doppelten Variablen in Spalte 1, aber wenn ich die duplizierte Funktion zu verwenden, sie nach dem Zufall mit zweifacher Ausfertigung (Funktion) wählt die Reihe nach Deduplizierung
dedup_df = df[!duplicated(df$a), ]
Wie kann ich sicherstellen, dass die Ausgabe mir die Zeile zurückgibt, die nicht eine NA auf Spalte c enthält?
Ich versuchte, das dplyr Paket aber die Ausgabe druckt ein Ergebnis
library(dplyr)
options(dplyr.print_max = Inf)
df %>% ## source dataframe
group_by(a) %>% ## grouped by variable
filter(!is.na(c)) %>% ## filter by Gross value
as.data.frame(dedup_df)
Es ist nicht klar, was Ihre erwartete Ausgabe ist. Das 'dedup_df' hat keine NA-Zeilen von c – akrun
@akrun, ja deduP_df enthält keine NA, wenn Sie es einmal ausführen, aber es ist nicht sichergestellt, dass dies der Fall ist. Also, was ich in allen Läufen erreichen möchte, dass keine Zeile, die dupliziert wird, würde mit einer NA in dieser Spalte gewählt werden –
In diesem Fall nur tun df%>% filter (! Is.na (c))%>%. ! duplicated (. $ a),] 'oder ein doppelter' filter' dh 'df%>% filter (! is.na (c))%>% filter (! duplicated (a))' – akrun