2016-04-27 9 views
2

Nicht sicher, ob der Titel klar genug ist. Ich habe folgenden Datenrahmen: (ST.final den Namen des df)Kopieren von Zeilen eines df, wenn NA == TRUE plus obere und untere Zeilen in R

n;date;ws;wd 
1;2011-11-01 00:00:00;7,15;113,7 
2;2011-11-01 00:10:00;7,25;115,7 
3;2011-11-01 00:20:00;NA;NA 
4;2011-11-01 00:30:00;NA;NA 
5;2011-11-01 00:40:00;7,2;100,7 
6;2011-11-01 00:50:00;6,95;104,7 

Und ich mag einen neuen mit den Zeilen erstellen NAs und die oberen und unteren Grenze Zeilen enthalten. Das Ergebnis sollte wie folgt sein:

n;date;ws;wd 
2;2011-11-01 00:10:00;7,25;115,7 
3;2011-11-01 00:20:00;NA;NA 
4;2011-11-01 00:30:00;NA;NA 
5;2011-11-01 00:40:00;7,2;100,7 

Vielleicht etwas fehlt mir, aber ich habe keine Ahnung, wie man diese Aufgabe auszuführen. Bis jetzt versuche ich, dieses

interp.df <- ST.final[(is.na(ST.final$ws)),] 

zu verwenden, und wie erwartet es kopiert nur jede Reihe, die NAs enthält. Ich suchte nach einer Lösung bei Google, konnte aber nichts Ähnliches finden.

Jede Hilfe wird geschätzt.

Antwort

2

könnten Sie

idx <- which(!complete.cases(ST.final)) 
idx <- sort(unique(c(idx-1, idx, idx+1))) 
ST.final[idx, ] 
+0

versuchen, die perfekt funktioniert. Tolle. Vielen Dank!!!! – RafaelRS

Verwandte Themen