R 使用同一日期的多个剂量条目计算每日剂量
我将感谢任何人在这个问题上的帮助和建议 第一个数据框包含给患者的药物以及给药日期。我需要运行这个数据帧并计算每个id的每种药物的每日剂量,以便输出的数据帧类似于第二个数据帧 第一个数据帧 第二个数据帧 如果需要更多信息,请随时发表评论,我会回复您。R 使用同一日期的多个剂量条目计算每日剂量,r,date,dataframe,summarize,R,Date,Dataframe,Summarize,我将感谢任何人在这个问题上的帮助和建议 第一个数据框包含给患者的药物以及给药日期。我需要运行这个数据帧并计算每个id的每种药物的每日剂量,以便输出的数据帧类似于第二个数据帧 第一个数据帧 第二个数据帧 如果需要更多信息,请随时发表评论,我会回复您。库(dplyr) df1%>% 分组依据(id、药物、日期)%>% 总结(每日剂量=总和(剂量,na.rm=T), 单位=第一(单位)) 我认为您的第二个数据帧(期望的结果)并不完整。但这可以通过使用aggregate在base中完成: >
库(dplyr)
df1%>%
分组依据(id、药物、日期)%>%
总结(每日剂量=总和(剂量,na.rm=T),
单位=第一(单位))
我认为您的第二个数据帧(期望的结果)并不完整。但这可以通过使用aggregate
在base中完成:
> df2 <- aggregate(dose ~ id + drug + date + units, data=df1, FUN=sum)
> head(df2)
id drug date units dose
1 1010001 Morphine 2006-04-18 mcg 60
2 1010002 Fentanyl 2008-05-28 mcg 100
3 1010001 Ganciclovir 2006-04-18 mg 60
4 1010001 Methylprednisolone 2006-04-18 mg 46
5 1010001 Acetaminophen 2006-04-19 mg 1000
6 1010001 Cefazolin 2006-04-19 mg 1000
>df2头(df2)
药物日期单位剂量
1010001吗啡2006-04-18微克60
2 1010002芬太尼2008-05-28微克100
3 1010001更昔洛韦2006-04-18毫克60
4 1010001甲基强的松龙2006-04-18毫克46
5 1010001对乙酰氨基酚2006-04-19毫克1000
6 1010001头孢唑林2006-04-19毫克1000
库(data.table);setDT(dt1)[,每日剂量:=总和(剂量),by=列表(id、日期、药物、单位)][]
structure(list(id = c(1010001, 1010001, 1010001, 1010001, 1010001,
1010001, 1010001, 1010001, 1010001, 1010001, 1010001, 1010001,
1010001), drug = c("Furosemide", "Furosemide", "Magnesium Sulfate",
"Methylprednisolone", "Methylprednisolone", "Morphine", "Acetaminophen",
"Acetaminophen", "Cefazolin", "Cefazolin", "Ganciclovir", "Ganciclovir",
"Methylprednisolone"), date = structure(c(1145404800, 1145491200,
1145318400, 1145318400, 1145404800, 1145318400, 1145404800, 1145491200,
1145404800, 1145491200, 1145318400, 1145404800, 1145404800), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), dailydose = c(62, 60, 6, 46, 46, 60,
1000, 1000, 1000, 1000, 60, 60, 69), units = c("mg", "mg", "mmol",
"mg", "mg", "mcg", "mg", "mg", "mg", "mg", "mg", "mg", "mg")), row.names = c(NA,
-13L), class = c("tbl_df", "tbl", "data.frame"))
> df2 <- aggregate(dose ~ id + drug + date + units, data=df1, FUN=sum)
> head(df2)
id drug date units dose
1 1010001 Morphine 2006-04-18 mcg 60
2 1010002 Fentanyl 2008-05-28 mcg 100
3 1010001 Ganciclovir 2006-04-18 mg 60
4 1010001 Methylprednisolone 2006-04-18 mg 46
5 1010001 Acetaminophen 2006-04-19 mg 1000
6 1010001 Cefazolin 2006-04-19 mg 1000