2017-02-24 3 views
1

Das ist mein Datenrahmen:Wie Zeilen in einem Datenrahmen mit dplyr-Gruppe durch andere Daten kombinieren und flattern?

UID    HH0 HH1 HH2 HH3 HH4 HH5 
JEZAF000080843824 NA NA NA 1 NA NA 
JEZAF000080843824 NA NA NA NA Y NA 
JEZAF000080843824 NA NA NA NA NA 2 

Hier ist, was ich suche in den Ergebnissen

UID    HH0 HH1 HH2 HH3 HH4 HH5 
JEZAF000080843824 NA NA NA 1 Y 2 

ich um mit dplyr mit group_by gespielt haben, aber ich bin nicht sicher, welche Funktion %>% in. Ich weiß, es ist wahrscheinlich eine einfache Antwort, aber ich bin mit R.

+0

Start mit 'df%>% group_by (UID)%>% summarise_all (max, na .rm = TRUE) ' – HubertL

Antwort

0

Wir können dies tun, mit na.omit

df1 %>% 
    group_by(UID) %>% 
    summarise_each(funs(na.omit)) 
# A tibble: 1 × 7 
#    UID HH0 HH1 HH2 HH3 HH4 HH5 
#    <chr> <lgl> <lgl> <lgl> <int> <chr> <int> 
#1 JEZAF000080843824 NA NA NA  1  Y  2 
+0

Ich denke, das wird funktionieren, aber ich treffe einen Fehler: Fehler in summarise_impl (.data, dots): erwartet einen einzelnen Wert. Der Datenrahmen ist mit Spaltentypen als Faktoren formatiert. Ich frage mich, ob das Problem da ist. – ddamko

+0

@ddamko In dem von Ihnen gezeigten Beispiel gab es nur einen einzigen Nicht-NA-Wert pro UID. Wenn das im Originaldatensatz nicht der Fall ist, müssen wir es so ändern, wie es HubertL kommentiert hat – akrun

Verwandte Themen