Verschmelzen Sie zwei String-Spalten mit fehlenden Werten zu eins

7

Ich habe einen Datenrahmen mit zwei Spalten "a" und "b" mit alternierenden fehlenden Werten ( NA )

%Vor%

Ich möchte sie mit einer neuen Spalte c verbinden / kombinieren, die so aussieht, d. h. das Element non NA in jeder Zeile ist ausgewählt:

%Vor%

Ich habe merge und join versucht, aber keiner hat so funktioniert, wie ich es wollte. Vielleicht, weil ich keine ID habe, mit der ich verschmelzen könnte? Für ganze Zahlen würde ich das einfach umgehen und beide Spalten hinzufügen, aber wie in meinem Fall?

    
ben_aaron 08.01.2015, 22:02
quelle

5 Antworten

8

Sie können pmax

versuchen %Vor%

... oder ifelse :

df$c <- ifelse(is.na(df$a), df$b, df$a)

Für allgemeinere Lösungen in Fällen mit mehr als zwei Spalten finden Sie mehrere Möglichkeiten zum Implementieren der Koaleszenz in R hier .

    
Henrik 08.01.2015, 22:25
quelle
4

Ich habe eine coalesce () -Funktion für diese Art von Aufgabe geschrieben, die ähnlich wie die SQL-Coalesce-Funktion funktioniert. Du würdest es wie

benutzen %Vor%     
MrFlick 08.01.2015 22:15
quelle
3

Hier ist mein Versuch (modifiziert von @MrFlick)

%Vor%     
David Arenburg 08.01.2015 22:17
quelle
2

Eine andere Option ist die Verwendung von which mit arr.ind=TRUE

%Vor%

Oder

%Vor%     
akrun 09.01.2015 11:56
quelle
1

Sie könnten ein einfaches apply verwenden:

%Vor%     
LyzandeR 08.01.2015 22:17
quelle

Tags und Links