我不知道如何搜索我所追求的內容,因此這可能是一個重複的問題。如果是這樣,提前抱歉!R在患者中發現事件和入院的時間
我有一系列的患者(數據框「招生」)和一系列事件(第二個數據框稱爲「事件」)招生。 我對入場後5天內是否發生事件感興趣。顯然必須在患者ID('id')內進行匹配。
在現實生活中,入學數據框包含100k分的大於500k的入學資格。一名患者可能有多次入院和多次事件。並非所有的患者都會有事件發生。
admissions <- structure(list(id = c(1L, 1L, 1L, 2L, 2L, 2L), date = structure(c(16436,
16443, 16574, 16468, 16481, 16494), class = "Date")), .Names = c("id",
"date"), row.names = c(NA, 6L), class = "data.frame")
> admissions
id date
1 1 2015-01-01
2 1 2015-01-08
3 1 2015-05-19
4 2 2015-02-02
5 2 2015-02-15
6 2 2015-02-28
events <- structure(list(id = c(1L, 1L, 2L), date = structure(c(16453,
16578, 16467), class = "Date")), .Names = c("id", "date"), row.names = 7:9, class = "data.frame")
> events
id date
7 1 2015-01-18
8 1 2015-05-23
9 2 2015-02-01
我想我只需要每個事件相對於招生的最小差異(只考慮正值),匹配患者。
Event 1 (id ==1): +10 days (10 days after 08/01/2015)
Event 2 (id ==1): +4 days
Event 3 (id ==2): -1 days
然後,我可以選擇那些屬於我的窗口(這可能是5天)的事件。
任何幫助非常感謝!我的猜測是lapply()會涉及到,但由於某種原因,apply對於我來說並不是每個人都很自然(然而!)。
你打算如何日期和編號,因爲它們是不同長度的比較,是我不清楚。 – SabDeM
這就是加入想法的地方... –
事件1的日期應該與患者1的所有3個入院日期進行比較,並且應該選擇最小(正)時間平移。患者1的事件2等同等 – Luc