我正嘗試使用包zoo
中的na.locf
以及使用dplyr
的分組數據。我使用的是關於這個問題的第一個解決方案:當在一個組內,所有的數據是NA發生Using dplyr window-functions to make trailing values (fill in NA values)na.locf使用來自dplyr的group_by
library(dplyr);library(zoo)
df1 <- data.frame(id=rep(c("A","B"),each=3),problem=c(1,NA,2,NA,NA,NA),ok=c(NA,3,4,5,6,NA))
df1
id problem ok
1 A 1 NA
2 A NA 3
3 A 2 4
4 B NA 5
5 B NA 6
6 B NA NA
的問題。正如您在問題列中看到的,id = B的na.locf
數據來自另一個組:id = A的最後一個數據。
df1 %>% group_by(id) %>% na.locf()
Source: local data frame [6 x 3]
Groups: id [2]
id problem ok
<chr> <chr> <chr>
1 A 1 <NA>
2 A 1 3
3 A 2 4
4 B 2 5 #problem col is wrong
5 B 2 6 #problem col is wrong
6 B 2 6 #problem col is wrong
這是我的預期結果。爲ID = B的數據是獨立的,什麼是在ID = A
id problem ok
<chr> <chr> <chr>
1 A 1 <NA>
2 A 1 3
3 A 2 4
4 B NA 5
5 B NA 6
6 B NA 6
這看起來像類似於[錯誤這裏desribed(https://github.com東西以下任一組/哈德利/ dplyr /問題/ 1463)。我在[最近的回答](http://stackoverflow.com/a/43100751/496488)中被這個問題困住了(你需要看看答案的以前版本,因爲我後來編輯它來修復)。 – eipi10
是的,這可能是一個錯誤。根據@ Akrun的回答,我很高興有一個解決方法是使用'mutate_all'。 –