gpt4 book ai didi

r - 使用 R 将包含在具有患者 ID 的行之一中的信息填充到数据帧中的 'NA' s

转载 作者:行者123 更新时间:2023-12-04 10:36:39 25 4
gpt4 key购买 nike

我在 R 中有以下数据框:

ID  Information
1 Yes
1 NA
1 NA
1 Yes
2 No
2 NA
2 NA
3 NA
3 NA
3 Maybe
3 NA

我需要用与该 ID 对应的行之一中包含的任何信息填写包含 NA 的行。
我想要这个:
ID  Information
1 Yes
1 Yes
1 Yes
1 Yes
2 No
2 No
2 No
3 Maybe
3 Maybe
3 Maybe
3 Maybe

据我所知,信息(即是/否/可能)在一个 ID 内没有冲突,但可能会重复。(抱歉格式丑陋 - 我是新手,可能不会发布图片)。

谢谢!

最佳答案

一种选择是使用 data.table .我们将“data.frame”转换为“data.table”(setDT(df1)),按“ID”分组,我们将(:=)“信息”分配为unique非 NA 元素。

library(data.table)#v1.9.5+
setDT(df1)[, Information:=unique(Information[!is.na(Information)]), by = ID]
df1
# ID Information
# 1: 1 Yes
# 2: 1 Yes
# 3: 1 Yes
# 4: 1 Yes
# 5: 2 No
# 6: 2 No
# 7: 2 No
# 8: 3 Maybe
# 9: 3 Maybe
# 10: 3 Maybe
# 11: 3 Maybe

或者我们可以在删除“NA”行后将数据集与数据集的唯一行连接起来。在这里,我使用 devel data.table 的版本
 setDT(unique(na.omit(df1)))[df1['ID'], on='ID'] 

或者我们使用 dplyr ,按“ID”分组,我们 arrange “信息”使“NA”成为最后一个,创建“信息”作为“信息”的第一个值。
 library(dplyr)
df1 %>%
group_by(ID) %>%
arrange(Information) %>%
mutate(Information= first(Information))

关于r - 使用 R 将包含在具有患者 ID 的行之一中的信息填充到数据帧中的 'NA' s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31611304/

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