我有一个时间序列数据。 我需要在时间序列数据中找到缺失值并将其显示给用户。我只需要一个可以快速运行的算法。由于此输出需要在 Shiny 中生成。不能让用户久等
# creating sample data
topdays <- seq(1,6,2)
topobs <- rep("Adams",3)
middays <- rep(seq(1:6),3)
midobs <- c(rep("Allen",6),rep("Benton",6),rep("Blackford",6))
bottomdays <- seq(1,6,2)
bottomobs <- rep("Brown",3)
values <- runif(24, min=70, max=100)
obs <- c(topobs,midobs,bottomobs)
days <- c(topdays,middays,bottomdays)
df <- data.frame(days,values,obs)
# end creation of sample data
如您所见,Adams 和 Brown 在第 2、4、6 天的观察数据缺失。
我想创建一个函数来捕捉丢失的一天和观察结果
输出应创建一个包含缺失值及其观察值的数据框。
我刚刚创建了一个问题陈述示例。
真正的数据集会非常大。
感谢您期待看到这个。 让我知道是否可以提供更多详细信息
最佳答案
我们可以尝试:
library(data.table)
setDT(df)
setkeyv(df, c("days", "obs"))
df[with(df, expand.grid(unique(days), unique(obs)))][is.na(values)]
输出
days values obs
1: 2 NA Adams
2: 4 NA Adams
3: 6 NA Adams
4: 2 NA Brown
5: 4 NA Brown
6: 6 NA Brown
关于r - 在时间序列中查找缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43238774/