如何获取R数据帧中满足特定条件的第一行?
我有一个包含数千行的数据帧。每一行都是住院记录;它包含患者ID和许多健康信息(诊断、入院日期、出院日期等) 每个患者可以有多个住院记录,但我只需要每个患者的第一次住院,例如,根据入院日期,每个患者ID的第一次记录。如何在R中获得此结果如何获取R数据帧中满足特定条件的第一行?,r,dataframe,filtering,R,Dataframe,Filtering,我有一个包含数千行的数据帧。每一行都是住院记录;它包含患者ID和许多健康信息(诊断、入院日期、出院日期等) 每个患者可以有多个住院记录,但我只需要每个患者的第一次住院,例如,根据入院日期,每个患者ID的第一次记录。如何在R中获得此结果 提前谢谢。我想我有一个解决方案,但可能有一个更平滑的方法 使用dplyr尝试此操作。请注意,我假设当你说“第一个”记录时,你指的是最古老的记录。如果需要最新记录,请使用max() install.packages('dplyr') library(dplyr)
提前谢谢。我想我有一个解决方案,但可能有一个更平滑的方法 使用
dplyr
尝试此操作。请注意,我假设当你说“第一个”记录时,你指的是最古老的记录。如果需要最新记录,请使用max()
install.packages('dplyr')
library(dplyr)
your_data <- group_by(your_data, patientID)
## This gives you a data frame with all dates and IDs for first visits
first_records <- summarise(your_data, min(admit_date))
## Create ID to match
first_records$matchID <- paste(first_records$patientID, first_records$admit_date)
your_data$matchID <- paste(your_data$patientID, your_data$admit_date)
## Get complete records
first_records <- your_data[your_data$matchID %in% first_records$matchID, ]
install.packages('dplyr'))
图书馆(dplyr)
您需要发布示例数据来制作示例。可能库(dplyr);df%>%group_by(patientID)%>%filter(入院日期==min(入院日期)
库(data.table);setDT(data);数据[医嘱(入院日期),.SD[1],by=患者id]
your_data <- group_by(your_data, patientID)
first_records <- filter(your_data, adm_date == min(admission_date))