Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取R数据帧中满足特定条件的第一行?_R_Dataframe_Filtering - Fatal编程技术网

如何获取R数据帧中满足特定条件的第一行?

如何获取R数据帧中满足特定条件的第一行?,r,dataframe,filtering,R,Dataframe,Filtering,我有一个包含数千行的数据帧。每一行都是住院记录;它包含患者ID和许多健康信息(诊断、入院日期、出院日期等) 每个患者可以有多个住院记录,但我只需要每个患者的第一次住院,例如,根据入院日期,每个患者ID的第一次记录。如何在R中获得此结果 提前谢谢。我想我有一个解决方案,但可能有一个更平滑的方法 使用dplyr尝试此操作。请注意,我假设当你说“第一个”记录时,你指的是最古老的记录。如果需要最新记录,请使用max() install.packages('dplyr') library(dplyr)

我有一个包含数千行的数据帧。每一行都是住院记录;它包含患者ID和许多健康信息(诊断、入院日期、出院日期等)

每个患者可以有多个住院记录,但我只需要每个患者的第一次住院,例如,根据入院日期,每个患者ID的第一次记录。如何在R中获得此结果


提前谢谢。

我想我有一个解决方案,但可能有一个更平滑的方法

使用
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))