我有一个数据集,数据集中的前三个变量如下所示:
id <- c(I-0009,I-0009,I-0009,I-0009,I-0009)
occasion<- c(1,1,2,2,3)
time < - c(37800, NA, 54000, NA, 61200)
实际数据集更长,有数千个 ID 和更多变量。有随机时间随机丢失的数据。有没有办法估算缺失的时间值。如果 ID 和场合匹配,那么我想估算也匹配的时间。所以对于这个截断的例子,灵魂是:
id <- c(I-0009,I-0009,I-0009,I-0009,I-0009)
occasion<- c(1,1,2,2,3)
time < - c(37800, 37800, 54000, 54000, 61200)
答案 0 :(得分:0)
你可以这样做:
library(dplyr)
df <- data.frame(id = c("I-0009","I-0009","I-0009","I-0009","I-0009"),
occasion = c(1,1,2,2,3),
time = c(37800, NA, 54000, NA, 61200))
df %>%
group_by(id, occasion) %>%
tidyr::fill(time, .direction = "down")
警告:在输入之前,您需要确保 time
对于每个 id-occasion 组都是唯一的。此外,如果根据 NA
值的位置,您可能需要更改 .direction
函数中的 fill
参数。