gpt4 book ai didi

r - 合并与 R 中最后一行具有相同值的所有紧邻的前一行

转载 作者:行者123 更新时间:2023-12-02 08:25:18 25 4
gpt4 key购买 nike

我有一个类似于此的数据框:

ID  Description
1 "Low Blood Sugar, High Temperature"
1 "No Appetite"
2 "Blood Test Taken"
2 "D4556 Applied, No Obvious Reaction"
3 "At Rest"
1 "Lower Temperature, Improving"
1 "Walked 50m"
1 "Sedated"

我想要做的是以数组形式返回最后一个患者 ID 以及同一患者之前发生的所有评论。也就是说,不是之前发生的任何事情。比如我要返回:

ID  Description
1 "Lower Temperature, Improving, Walked 50m, Sedated"

我可以用 for 循环来解决这个问题,但我有一个大数据框并且想要更高效的东西。我已经使用 ddply 对不同的变量进行子集化,这就是为什么我只需要最后一个 ID 的最后观察结果。

最佳答案

另一种data.table方法(使用rleid):

library(data.table) #1.9.6
res <- setDT(df)[, list(ID[1L], toString(Description)), by = rleid(ID)]

您可以稍后在使用时删除 rleid

res[, rleid := NULL]

如果您只想以聚合形式返回最后一个 ID,您可以执行以下操作,这应该非常快:

idx <- df[,rleid(ID)]
df[idx == max(idx), list(ID[1L], toString(Description))]
# V1 V2
#1: 1 Lower Temperature, Improving, Walked 50m, Sedated

关于r - 合并与 R 中最后一行具有相同值的所有紧邻的前一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760524/

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