我需要基於分組填寫基於先前值和/或前向值的缺失值。我想用dplyr完成這個工作(雖然data.table解決方案也會受到歡迎)。基於滯後分組值確定缺失值
的樣本數據:
testing <- tibble(key = c(10,10,10,10,10,10,20,20,20,20,20,20),
year = c(15,15,16,16,17,17,15,15,16,16,17,17),
name = c("abc","abc","","","dfg","dfg",
"","","nmm","nmm","",""),
is_name = c(1,1,0,0,1,1,0,0,0,0,0,0))
key year name is_name
<dbl> <dbl> <chr> <dbl>
1 10 15 abc 1
2 10 15 abc 1
3 10 16 0
4 10 16 0
5 10 17 dfg 1
6 10 17 dfg 1
7 20 15 0
8 20 15 0
9 20 16 nmm 0
10 20 16 nmm 0
11 20 17 0
12 20 17 0
我要填寫的方式丟失的名稱(name
)如果同一key
以前year
被標記爲is_name==1
,比填充它缺少的。 所以輸出可以是:
key year name is_name name_new
<dbl> <dbl> <chr> <dbl> <chr>
1 10 15 abc 1 abc
2 10 15 abc 1 abc
3 10 16 0 abc
4 10 16 0 abc
5 10 17 dfg 1 dfg
6 10 17 dfg 1 dfg
7 20 15 0
8 20 15 0
9 20 16 nmm 0 nmm
10 20 16 nmm 0 nmm
11 20 17 0
12 20 17 0
我試圖用lag
和leap
,但它並沒有超越集團(key
)正確。
謝謝!
'從'zoo'包na.locf'的工作是你正在尋找 – Jaap
@Jaap我已經準備使用的答案是什麼'na.locf',然後看到你的評論。我應該發佈還是打算髮布自己的? –