以下未検証ですが参考までに
library(dplyr)
library(lubridate)
# データ①
data1 <- data.frame(
個体ID = c("A", "B", "C", "D", "E"),
分娩日 = as.Date(c("2023-01-01", "2023-01-02", "2023-01-03", "2023-01-02", "2023-01-04")),
分娩後10日 = as.Date(c("2023-01-11", "2023-01-12", "2023-01-13", "2023-01-12", "2023-01-14"))
)
# データ②
data2 <- data.frame(
個体ID = c("A", "A", "C", "E"),
診断日 = as.Date(c("2023-01-09", "2023-02-02", "2023-01-12", "2023-03-03")),
病気有無 = c(1, 1, 1, 1)
)
# データの結合
merged_data <- merge(data1, data2, by = "個体ID", all.x = TRUE)
# 条件に基づくフィルタリング
filtered_data <- merged_data %>%
mutate(病気有無 = ifelse(診断日 >= 分娩日 & 診断日 <= 分娩後10日, 病気有無, 0)) %>%
group_by(個体ID) %>%
summarize(分娩日 = first(分娩日), 分娩後10日 = first(分娩後10日), 病気有無 = max(病気有無))
# 結果の表示
filtered_data