gpt4 book ai didi

r - 组在多列上进行的最后一次观察

转载 作者:行者123 更新时间:2023-12-04 12:02:06 28 4
gpt4 key购买 nike

我有一个数据集,其中包含随着时间的推移对多个患者及其诊断的观察。有 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 开头的列?

最佳答案

cols = grep("^K|^L|^M", names(diagnosis), value = T)

diagnosis[, (cols) := na.locf(.SD, na.rm = F), by = patient, .SDcols = cols]

还可以看看 efficiently locf by groups in a single R data.table .

关于r - 组在多列上进行的最后一次观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37080594/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com