我需要将每个人的年份直接置于空值(具有年份值的最早文件日期)之上,然后用该年份填充缺失的值.我有一个使用子集设置和分配值的方法,但它需要循环数据,并且对于数十亿行来说,这是不可行的.下面是一个模拟数据集,显示了数据的 struct .每个ID都有多个文件日期,并且可能有几年与之关联.对于3/1/14之前的文件日期,年份列缺失.
df <- data.frame(
ID = c(1,1,1,1,1,1,2,2,2,2),
file_date = c("12/1/14", "9/1/14", "6/1/14", "3/1/14", "12/1/13", "9/1/13", "9/1/14", "6/1/14", "3/1/14", "12/1/13"),
year = c(1979, 1965, 1965, 1965, NA, NA, 1982, 1982, 1982, NA)
)
在此数据中,前两个空值将用1965填充,最后一个空值将用1982填充.