我正尝试使用包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'。 –