如何解决R中的最后一次观察向前推进和最后一次观察向后推进
df <- data.frame(ID=c(1,1,2,3,3),values=c(NA,NA,12,13,5,1))
我想要这样的输出,以便将最后的观察结果(按组)向前推进,除非在一个填充值之前只有 NA 值,然后我希望向后进行最后一次观察:
df <- data.frame(ID=c(1,values=c(12,1))
我一直在使用 zoo 包中的 dplyr 和 na.locf。到目前为止,我的方法是这样的:
df%>%
group_by(PID%>%
mutate_all(funs(na.locf(.,na.rm = FALSE)))
然而,这只会将最后一次观察结转。 na.locf 函数中的“fromLast”规范将最后一次观察结果向后进行。
但是我如何连接这两个,以便同时使用两个功能:
在此先感谢您!
解决方法
这应该有效:
library(tidyverse)
df <- data.frame(ID=c(1,1,2,3,3),values=c(NA,NA,12,13,5,1))
df2 <- data.frame(ID=c(1,values=c(12,1))
df <- df %>%
group_by(ID) %>%
fill(values,.direction = "downup") %>%
fill(values,.direction = "updown")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。