Ich habe eine einfache Datenrahmen, wie viele Spalten eines Datenrahmens zu transformieren in r
d <- data.frame(var1=c(5,5,5),var1_c=c(5,NA,6),var2 =c(6,6,6),var2_c = c(8,6,NA))
mit vielen Linien und eine Menge Variablen, die alle mit „varXXX“ und „varXXX_c“, und Ich möchte, dass es immer eine NA in einer varXXX_c gibt, um die NA durch den Wert in der Variablen varXXX zu ersetzen. Kurz , will ich tun:
d[is.na(d$var1_c),"var1_c"] <- d$var1[is.na(d$var1_c)]
aber versuchen, einen besseren Weg zu finden, dies zu tun, die Paste kopieren und „1“ mit der Anzahl der Variablen zu ändern.
Ich würde lieber eine Lösung in der Basis R oder dplyr finden, wäre aber dankbar für jede Hilfe!
woah! Danke für diese schöne und effiziente Lösung! Das Problem für mich ist, dass mein Datenrahmen andere Variablen als die Variablen vom Typ varXXX/varXXX_c enthält und dass ich nicht sicher bin, wie die Spalten sortiert sind (und Ihre Lösung, korrigieren Sie mich, wenn ich falsch liege, hängt stark von dieser Bedingung ab) . – Malta
@Malta Mache in diesem Fall einen zweiten Grep, d. H. 'I2 <- grepl ('var \\ d + $', Namen (d))' und verwende 'i2' – akrun