2017-09-10 1 views
-1

Ich habe eine Zeichenspalte mit <NA>, die ich durch das Zeichen unter der Zeile ersetzen möchte. Ein Beispiel ist unten:Ersetzen von fehlenden Zeichen durch das Zeichen in der Zeile darunter mit R

df12 <- 
    structure(
    list(Reg = structure(c(NA, 1L, 1L, NA, 1L, 1L, NA, 2L, 2L, NA, 2L, 2L, NA, 2L, 2L) 
         , .Label = c("A", "B"), class = "factor")), 
    .Names = "Reg", row.names = c(NA, -15L), class = "data.frame") 

df12 
Reg 
1 <NA> 
2  A 
3  A 
4 <NA> 
5  A 
6  A 
7 <NA> 
8  B 
9  B 
10 <NA> 
11 B 
12 B 
13 <NA> 
14 B 
15 B 

library(dplyr) 

erforderliche Ausgabe

1  A 
2  A 
3  A 
4  A 
5  A 
6  A 
7  B 
8  B 
9  B 
10 B 
11 B 
12 B 
13 B 
14 B 
15 B 

Antwort

3

Wir haben die fill die .direction durch Angabe verwenden können

library(dplyr) 
library(tidyr) 
df12 %>% 
    fill(Reg, .direction = "up") 
2

Eine weitere Option na.locf schneller verwenden und streng ausgelegt zum Füllen fehlt mit dem letzten fehlenden Wert:

zoo::na.locf(df12,fromLast=TRUE) 

# Reg 
# 1 A 
# 2 A 
# 3 A 
# 4 A 
# 5 A 
# 6 A 
# 7 B 
# 8 B 
# 9 B 
# 10 B 
# 11 B 
# 12 B 
# 13 B 
# 14 B 
# 15 B 
Verwandte Themen