我有一个数据集,其中包含多个患者的观察结果及其随时间的诊断。有 9 个不同的虚拟变量,每个代表一个特定的诊断,例如 L40、L41、K50、M05 等。
在虚拟变量中存在缺失值的情况下,我想将患者的最后一个非缺失值结转,这样一旦患者接受诊断,它将继续进行后续观察。
我从这个开始,使用 zoo 包中的 na.locf 函数。
diagdata <- originaldata[,grep("^patient|^ar|^edatum|^K|^L|^M",colnames(originaldata))]
require(zoo)
require(data.table)
diagnosis <- data.table(diagdata)
diagnosis[,L40:=na.locf(L40),by=patient]
这实现了我正在寻找的东西,但仅限于有问题的列(L40)。有没有办法将上述内容应用于所有相关的诊断列,即以 K、L 和 M 开头的列?