ar 数据表中的前向填充行

DEV*_*ONE 3 r dataframe data.table

我有以下格式的大 data.table

Name       Value     1      2     3     4     5 
A           58       1      NA    NA    NA    NA
B           47       NA     1     NA    NA    NA
C           89       NA     NA    1     NA    NA
D           68       NA     NA    NA    1     NA
E           75       NA     NA    NA    NA    1
Run Code Online (Sandbox Code Playgroud)

我想转发数据表的行以实现以下结果。我知道如何转发填充列。

Name       Value     1      2     3     4     5 
A           58       1      1     1     1     1
B           47       NA     1     1     1     1
C           89       NA     NA    1     1     1
D           68       NA     NA    NA    1     1
E           75       NA     NA    NA    NA    1  

Run Code Online (Sandbox Code Playgroud)

帮助!

Dav*_*urg 5

data.table 有它自己的nafill功能。

library(data.table) #v>=1.12.8
library(magrittr)

melt(dt, id = 1:2) %>% 
  .[, value := nafill(value, "locf"), by = Name] %>% 
  dcast(., ... ~ variable)

#    Name Value  1  2  3  4 5
# 1:    A    58  1  1  1  1 1
# 2:    B    47 NA  1  1  1 1
# 3:    C    89 NA NA  1  1 1
# 4:    D    68 NA NA NA  1 1
# 5:    E    75 NA NA NA NA 1
Run Code Online (Sandbox Code Playgroud)

数据

dt <- fread("Name       Value     1      2     3     4     5 
A           58       1      NA    NA    NA    NA
B           47       NA     1     NA    NA    NA
C           89       NA     NA    1     NA    NA
D           68       NA     NA    NA    1     NA
E           75       NA     NA    NA    NA    1")
Run Code Online (Sandbox Code Playgroud)