I got this df
structure(list(subj = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 6L, 6L,
6L, 6L, 7L, 7L, 7L, 7L), adm_number = c(1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), label_2 = c("dead",
"dead", "dead", "dead", "dead", "dead", "dead", "dead", "dead",
"dead", "dead", "alive", "alive", "alive", "alive", "alive",
"alive", "alive", "alive", "alive", "alive", "alive", "alive",
"dead", "dead", "dead", "dead", "dead", "dead", "dead", "dead",
"dead"), dateIN = structure(c(14213, 14270, 14377, 14384, 14407,
14415, 14442, 14714, 14893, 14988, 15091, 13773, 14343, 15446,
15454, 15480, 15571, 15601, 15672, 15692, 14104, 15417, 15523,
13188, 14308, 14431, 14930, 14948, 13498, 13539, 14169, 14278
), class = "Date"), dateOUT = structure(c(14225, 14291, 14379,
14389, 14411, 14420, 14447, 14719, 14896, 14991, 15092, 13783,
14351, 15450, 15479, 15485, 15573, 15610, 15689, 15702, 14142,
15418, 15541, 13204, 14319, 14445, 14936, 14962, 13507, 13551,
14177, 14285), class = "Date"), dateCENS = structure(c(15092,
15092, 15092, 15092, 15092, 15092, 15092, 15092, 15092, 15092,
15092, 15705, 15705, 15705, 15705, 15705, 15705, 15705, 15705,
15705, 15705, 15705, 15705, 13985, 14962, 14962, 14962, 14962,
15623, 15623, 15623, 15623), class = "Date")), row.names = c(NA,
-32L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x7ffc190152e0>)
I want to create an extra column(label_3) like this
structure(list(subj = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L, 5L, 6L, 6L,
6L, 6L, 7L, 7L, 7L, 7L), adm_number = c(1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), label_2 = c("dead",
"dead", "dead", "dead", "dead", "dead", "dead", "dead", "dead",
"dead", "dead", "alive", "alive", "alive", "alive", "alive",
"alive", "alive", "alive", "alive", "alive", "alive", "alive",
"dead", "dead", "dead", "dead", "dead", "dead", "dead", "dead",
"dead"), dateIN = structure(c(14213, 14270, 14377, 14384, 14407,
14415, 14442, 14714, 14893, 14988, 15091, 13773, 14343, 15446,
15454, 15480, 15571, 15601, 15672, 15692, 14104, 15417, 15523,
13188, 14308, 14431, 14930, 14948, 13498, 13539, 14169, 14278
), class = "Date"), dateOUT = structure(c(14225, 14291, 14379,
14389, 14411, 14420, 14447, 14719, 14896, 14991, 15092, 13783,
14351, 15450, 15479, 15485, 15573, 15610, 15689, 15702, 14142,
15418, 15541, 13204, 14319, 14445, 14936, 14962, 13507, 13551,
14177, 14285), class = "Date"), dateCENS = structure(c(15092,
15092, 15092, 15092, 15092, 15092, 15092, 15092, 15092, 15092,
15092, 15705, 15705, 15705, 15705, 15705, 15705, 15705, 15705,
15705, 15705, 15705, 15705, 13985, 14962, 14962, 14962, 14962,
15623, 15623, 15623, 15623), class = "Date"), label_3 = c("dead_in",
"dead_in", "dead_in", "dead_in", "dead_in", "dead_in", "dead_in",
"dead_in", "dead_in", "dead_in", "dead_in", "alive", "alive",
"alive", "alive", "alive", "alive", "alive", "alive", "alive",
"alive", "alive", "alive", "dead_out", "dead_in", "dead_in",
"dead_in", "dead_in", "dead_out", "dead_out", "dead_out", "dead_out"
)), row.names = c(NA, -32L), class = c("data.table", "data.frame"
), .internal.selfref = <pointer: 0x7ffc190152e0>)
Basically, I want the status as dead_in if label_2 == dead and dateCENS is within dateIN and dateOUT, and status as dead_out if dateCENS is outside dateIN and dateOUT and alive otherwise when label_2 == alive.