How to assign a dummy variable if any value in column A is bigger than column B in R, after a certain point in the panel?

Viewed 28

I have an unbalanced panel data set of workers between 2003-2021. It's set by PersonID using the plm package.

I would like to generate a dummy variable for whether the worker enrolled in a school after job loss.

The coding criteria for this is:

Per group (aka PersonID):

1.) If after PermSeparation==1, any value in the TimeID_PSE column is MORE than any value in the LayoffTimeID column, then Enroll_Post_Disp==1 (on the same row corresponding with TimeID_PSE). Anything not fitting this criteria gets a zero.

I've denoted in red what I want the output to look like.

So for example, TimeID_PSE==20170821 gets a 1 in the Enroll_Post_Disp column because 20170821 > 20151231. Same for TimeID_PSE==20180108.

enter image description here

So far I've tried the following which gets me close, but it only assigns the Enroll_Post_Disp dummy if the TimeID_PSE value is on the same row as LayoffTimeID, (and not if the value in TimeID_PSE is greater than any value in LayoffTimeID).

  test <- df[1:1000, ] %>% #first 1,000 rows for faster computations 
    group_by(PersonID) %>%
    rowwise() %>%
    mutate(Enroll_Post_Disp = ifelse(TimeID_PSE > LayoffTimeID, 1, 0))

The panel data looks like this (first 50 rows):

structure(list(First.PersonID = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 
    PersonID = c(1534, 1534, 1534, 1534, 1534, 1534, 3345, 3345, 
    3345, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 4910, 
    4910, 4910, 4910, 4910, 4910, 4910, 5062, 5062, 5062, 5062, 
    5062, 5062, 5062, 7255, 7255, 7255, 7255, 7255, 7255, 7255, 
    7255, 7255, 7255, 7255, 7255, 10118, 10118, 10118, 10118, 
    10118, 10118, 10118), CalendarYear = c(2016, 2017, 2018, 
    2019, 2020, 2021, 2012, 2013, 2014, 2008, 2009, 2010, 2011, 
    2012, 2013, 2014, 2015, 2014, 2015, 2016, 2017, 2018, 2019, 
    2020, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2010, 2011, 
    2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 
    2008, 2009, 2010, 2011, 2012, 2013, 2014), AcademicYear = c(2015, 
    2016, 2017, 2018, 2019, 2020, 2011, 2012, 2013, 2007, 2008, 
    2009, 2010, 2011, 2012, 2013, 2014, 2013, 2014, 2015, 2016, 
    2017, 2018, 2019, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 
    2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 
    2019, 2020, 2007, 2008, 2009, 2010, 2011, 2012, 2013), LayoffCalendarYear = c(2016, 
    NA, NA, NA, NA, NA, 2012, 2013, NA, 2008, NA, NA, NA, NA, 
    NA, NA, NA, 2014, NA, NA, NA, NA, NA, NA, 2015, NA, NA, NA, 
    NA, NA, NA, 2010, 2011, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, 2008, NA, NA, NA, NA, NA, NA), LayoffCalendarQuarter = c(1, 
    NA, NA, NA, NA, NA, 4, 1, NA, 4, NA, NA, NA, NA, NA, NA, 
    NA, 1, NA, NA, NA, NA, NA, NA, 4, NA, NA, NA, NA, NA, NA, 
    1, 1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 4, NA, NA, 
    NA, NA, NA, NA), LayoffTimeID = c(20160331, NA, NA, NA, NA, 
    NA, 20121231, 20130331, NA, 20081231, NA, NA, NA, NA, NA, 
    NA, NA, 20140331, NA, NA, NA, NA, NA, NA, 20151231, NA, NA, 
    NA, NA, NA, NA, 20100331, 20110331, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, 20081231, NA, NA, NA, NA, NA, NA), Age = c(47, 
    48, 49, 50, 51, 52, 28, 29, 30, 43, 44, 45, 46, 47, 48, 49, 
    50, 35, 36, 37, 38, 39, 40, 41, 33, 34, 35, 36, 37, 38, 39, 
    44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 28, 29, 30, 
    31, 32, 33, 34), AGEatLayoff = c(47, 47, 47, 47, 47, 47, 
    28, 29, 29, 43, 43, 43, 43, 43, 43, 43, 43, 35, 35, 35, 35, 
    35, 35, 35, 33, 33, 33, 33, 33, 33, 33, 44, 45, 45, 45, 45, 
    45, 45, 45, 45, 45, 45, 45, 28, 28, 28, 28, 28, 28, 28), 
    Time_To_Layoff = c(0, 1, 2, 3, 4, 5, 0, 1, 2, 0, 1, 2, 3, 
    4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1, 2, 3, 4, 5, 6), 
    PermSeparation = c(1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 
    0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), WFTFLAG = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Enroll_Post_Disp = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), TimeID_PSE = c(NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    20121229, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA), EnrollmentStatus_PSE = c(NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA), EnrollmentStatus_NSCE = c(NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_, 
    NA_character_, NA_character_, NA_character_, NA_character_
    ), EnrollmentBeginTimeID_NSCE = c(NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), EnrollmentEndTimeID_NSCE = c(NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, 
    NA_real_), DegreeLevel1_PSE = c(NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "Associate Degree", 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA), Major1_PSE = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, 4.4e+07, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), Industry_of_Disp = c("Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Professional, Scientific, and Technical Services", 
    "Professional, Scientific, and Technical Services", "Professional, Scientific, and Technical Services", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Retail Trade", "Retail Trade", "Retail Trade", "Retail Trade", 
    "Retail Trade", "Retail Trade", "Retail Trade", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Health Care and Social Assistance", "Health Care and Social Assistance", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Administrative and Support and Waste Management and Remediation Services", 
    "Retail Trade", "Retail Trade", "Retail Trade", "Retail Trade", 
    "Retail Trade", "Retail Trade", "Retail Trade"), Gender = c("Female", 
    "Female", "Female", "Female", "Female", "Female", "Female", 
    "Female", "Female", "Male", "Male", "Male", "Male", "Male", 
    "Male", "Male", "Male", "Female", "Female", "Female", "Female", 
    "Female", "Female", "Female", "Male", "Male", "Male", "Male", 
    "Male", "Male", "Male", "Male", "Male", "Male", "Male", "Male", 
    "Male", "Male", "Male", "Male", "Male", "Male", "Male", "Male", 
    "Male", "Male", "Male", "Male", "Male", "Male"), RaceEthnicity_PSE = c("White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", "White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", "White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", NA, NA, NA, 
    NA, NA, NA, NA, NA, "White (Not Hispanic)", "White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", "White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA), RaceEthnicity_PSC = c("White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", "White (Not Hispanic)", 
    "White (Not Hispanic)", "White (Not Hispanic)", NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), DisablingCondition_PSE = c("Not disabled", 
    "Not disabled", "Not disabled", "Not disabled", "Not disabled", 
    "Not disabled", "Not disabled", "Not disabled", "Not disabled", 
    NA, NA, NA, NA, NA, NA, NA, NA, "Not disabled", "Not disabled", 
    "Not disabled", "Not disabled", "Not disabled", "Not disabled", 
    "Not disabled", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
    ), DisablingCondition_NSCE = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 
    NA, NA, NA, NA, NA, NA, NA, NA, 0, 0, 0, 0, 0, 0, 0, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), County = c(37, 147, 
    147, 147, 147, 147, 175, 175, 37, 109, 109, 109, 109, 109, 
    109, 109, 53, 59, 59, 175, 175, 175, 53, 53, 175, 175, 175, 
    175, 175, 175, 53, 53, 53, 53, 53, 19, 19, 19, 3, 171, 171, 
    171, 171, 169, 169, 169, 169, 169, 169, 109), IndustryID = c(930, 
    930, 930, 930, 930, 930, 818, 984, 818, 909, 909, 909, 909, 
    909, 909, 909, 852, 602, 602, 602, 602, 602, 936, 936, 933, 
    933, 933, 933, 933, 933, 893, 852, 852, 852, 852, 874, 874, 
    874, 874, 874, 874, 874, 874, 1323, 985, 985, 985, 985, 985, 
    985), EmployeeAnnualWages_adj_win = c(49365.3976993575, 62004.973813953, 
    31603.0562689936, 70469.9915410537, 85031.6247083522, 18709, 
    74075.0580319728, 10487.254105911, 37418.7884393328, 54957.3732496958, 
    55416.8801363691, 56982.2654087984, 55468.1410064036, 55836.8942767655, 
    56643.5019072261, 49126.6830876089, 1095.28671905025, 14394.4833009456, 
    14710.9125407302, 10947.8847682257, 15109.0902656239, 14310.1867507725, 
    8261.03411351222, 2771.01803120932, 44740.9761759846, 46150.0139910037, 
    47082.7021212652, 50664.6005541642, 53111.6446489586, 55219.3649830863, 
    1433, 25700.418179581, 28820.110272923, 32736.1643744376, 
    25837.7745624004, 15384.6406015673, 7285.14297890206, 7966.20345721364, 
    17352.0185761998, 30722.4957992982, 33843.3178399339, 37278.4103103, 
    11076, 10577.8278303448, 17358.0287469667, 30199.6066454611, 
    36439.8568547162, 41696.5047115589, 42388.6994374014, 7185.22240000282
    ), Avg_Quarterly_Wages = c(12341.3494248394, 15501.2434534883, 
    7900.7640672484, 17617.4978852634, 21257.9061770881, 4677.25, 
    18518.7645079932, 2621.81352647776, 9354.69710983321, 13739.3433124239, 
    13854.2200340923, 14245.5663521996, 13867.0352516009, 13959.2235691914, 
    14160.8754768065, 12281.6707719022, 273.821679762562, 3598.6208252364, 
    3677.72813518255, 2736.97119205643, 3777.27256640598, 3577.54668769313, 
    2065.25852837805, 692.75450780233, 11185.2440439962, 11537.5034977509, 
    11770.6755303163, 12666.1501385411, 13277.9111622396, 13804.8412457716, 
    358.25, 6425.10454489525, 7205.02756823076, 8184.0410936094, 
    6459.44364060011, 3846.16015039182, 1821.28574472552, 1991.55086430341, 
    4338.00464404994, 7680.62394982455, 8460.82945998348, 9319.602577575, 
    2769, 2644.4569575862, 4339.50718674168, 7549.90166136526, 
    9109.96421367905, 10424.1261778897, 10597.1748593503, 1796.3056000007
    ), Avg_Quarterly_WageRates = c(45.2785357747047, 40.2694463895401, 
    19.8482018563467, 41.3965259033139, 45.5764589637828, 11.8112373737374, 
    36.3798804185651, 34.6415856520052, 28.3483906141643, 25.2240608746217, 
    26.3289174680879, 27.1358694383627, 26.8492376700108, 27.285188591429, 
    27.5840964510407, 27.2406362366645, 4.84833010748691, 14.2956923945638, 
    14.5797747785242, 10.292498118163, 13.8365850400032, 13.1546591276055, 
    7.57076927514013, 3.9813477459904, 21.3658022913431, 22.1993252685404, 
    22.6259885712124, 24.0645657698337, 24.8602406618609, 25.5251249251744, 
    6.39732142857143, 13.2521132049609, 15.6711847053711, 13.5225496732746, 
    13.1810833307802, 12.1015683404843, 12.439570986205, 12.4299493894196, 
    12.1597887709879, 15.1391311684269, 15.6351512899473, 15.7836076162657, 
    4.24042879019907, 9.65574107491348, 10.4518986806169, 14.6630228730063, 
    16.1266695491898, 17.8190191075038, 18.1148288194023, 7.92613015332173
    ), Avg_Quarterly_WorkHours = c(273.25, 385.5, 199, 425.25, 
    465.5, 99, 509, 73, 165, 544.5, 526.25, 525, 516, 511.5, 
    513.25, 450.5, 30, 251.75, 252, 199.5, 273, 273, 136.5, 43.5, 
    522.75, 520, 520.5, 527, 534.25, 540.75, 14, 474.5, 491.75, 
    604.5, 488.5, 318, 146.5, 160.25, 356.75, 507.25, 541.75, 
    590, 163.25, 276, 311, 514.5, 562.75, 585, 585, 141.5), EmployeeQuarterlyWages_Qtr1_adj_win = c(14333.7470369592, 
    15932.6395960226, 0, 19299.0645546357, 22347.1559925294, 
    18709, 17675.1918978829, 2354.28153398003, 28800.4135071007, 
    12546.6154926867, 12689.2304728644, 13383.2529594018, 12286.7660692029, 
    12910.5852144058, 12840.372457315, 12852.585169226, 456.178915345562, 
    3067.77059614586, 3018.32665792552, 0, 4013.83572976883, 
    3612.88780948544, 0, 2771.01803120932, 10053.085720886, 10453.3840434157, 
    12531.2150461745, 12668.8479340977, 13322.1629166968, 13888.5894295633, 
    1433, 1640.1349834194, 6272.88860891654, 7499.21002398156, 
    6748.78530639929, 4036.17877686951, 1966.48554986057, 1615.59483379715, 
    3477.69958850255, 7405.98836215608, 8935.14467242853, 9233.23726303976, 
    11076, 3417.68446499895, 0, 6358.00811375537, 7093.29136341474, 
    10204.3075019428, 11288.6869008282, 0), EmployeeQuarterlyWages_Qtr2_adj_win = c(13281.5217503772, 
    14768.6161800362, 0, 15893.5343253933, 17149.5343359543, 
    0, 18555.6468361722, 3911.78300334726, 8618.37493223215, 
    13474.362620018, 14755.2715809065, 15312.8966179248, 15214.1944002318, 
    15208.5017892708, 15452.8805231842, 15000.0245865281, 639.107803704684, 
    3671.02250068648, 4118.18659918475, 3230.0606705057, 3408.05716190507, 
    3323.68412581098, 0, 0, 12074.4499372543, 12195.4265511369, 
    10775.7837217809, 11992.2408084862, 12011.0390780498, 12253.4061410295, 
    0, 5040.93002100948, 6753.56511265337, 8845.85759045354, 
    5724.02145687537, 3605.77514099233, 1593.76793982886, 1691.23763873385, 
    3647.93663129638, 7105.99349625496, 7864.62318735702, 7914.20336831979, 
    0, 2396.78498024236, 3149.5761145824, 7755.85042916963, 9711.11101910432, 
    10127.5922593305, 9825.40322012319, 7070.75334790782), EmployeeQuarterlyWages_Qtr3_adj_win = c(13931.824073415, 
    17861.6242692385, 14822.7679065388, 18617.5345398822, 22484.2936434884, 
    0, 17973.7912268202, 3197.58890163592, 0, 14230.910820189, 
    13310.5582388526, 13088.7741782879, 12901.1646078139, 12903.5038073954, 
    12854.3306482279, 15073.2847798689, 0, 3730.54640777588, 
    3718.02965589917, 4011.326655822, 4118.85208733646, 3739.14464153735, 
    3672.63063937899, 0, 10053.085720886, 12495.7397767064, 12657.2346752556, 
    14432.1271099338, 15478.0447985141, 14490.5295005665, 0, 
    9284.15802735589, 8496.77037808495, 8758.52023732565, 5707.73690081029, 
    4141.49030479691, 1863.58805015856, 1941.87499240469, 4985.51339610505, 
    8311.36855097277, 9030.53767604877, 9233.23726303976, 0, 
    2219.29197487777, 6588.34746983815, 7425.33837948057, 8918.41643399445, 
    11395.1641141867, 11427.1056273813, 114.469052094995), EmployeeQuarterlyWages_Qtr4_adj_win = c(7818.30483860607, 
    13442.0937686557, 16780.2883624548, 16659.8581211425, 23050.6407363801, 
    0, 19870.4280710975, 1023.60066694784, 0, 14705.4843168021, 
    14661.8198437456, 15197.3416531839, 15066.015929155, 14814.3034656935, 
    15495.918278499, 6200.78855198586, 0, 3925.14379633737, 3856.36962772075, 
    3706.49744189801, 3568.34528661355, 3634.47017393876, 4588.40347413323, 
    0, 12560.3547969583, 11005.4636197447, 11118.4686780542, 
    11571.3847016465, 12300.3978556979, 14586.839911927, 0, 9735.19514779623, 
    7296.88617326819, 7632.57652267686, 7657.23089831549, 3601.19637890853, 
    1861.30143905407, 2717.49599227795, 5240.8689602958, 7899.1453899144, 
    8013.01230409961, 10897.7324159007, 0, 2544.06641022574, 
    7620.10516254618, 8660.40972305548, 10717.0380382027, 9969.44083609888, 
    9847.50368906866, 0), EmployeeQuarterlyHoursWorked_Qtr1_win = c(331, 
    367, 0, 460, 463, 396, 491, 57, 508, 506, 489, 494, 468, 
    477, 468, 469, 40, 214, 211, 0, 294, 294, 0, 174, 480, 480, 
    560, 560, 560, 560, 56, 132, 491, 571, 487, 341, 162, 130, 
    286, 502, 586, 588, 653, 375, 0, 465, 471, 585, 585, 0), 
    EmployeeQuarterlyHoursWorked_Qtr2_win = c(289, 353, 0, 412, 
    404, 0, 516, 101, 152, 529, 560, 563, 561, 556, 558, 552, 
    80, 258, 280, 252, 252, 252, 0, 0, 571, 560, 480, 480, 487, 
    482, 0, 389, 290, 640, 456, 296, 128, 136, 300, 474, 497, 
    504, 0, 259, 227, 557, 610, 585, 585, 560), EmployeeQuarterlyHoursWorked_Qtr3_win = c(302, 
    450, 397, 431, 481, 0, 488, 87, 0, 568, 496, 481, 480, 472, 
    466, 552, 0, 261, 252, 294, 294, 294, 241, 0, 480, 560, 561, 
    588, 609, 560, 0, 672, 634, 634, 456, 340, 148, 156, 410, 
    549, 580, 588, 0, 222, 474, 478, 540, 585, 585, 6), EmployeeQuarterlyHoursWorked_Qtr4_win = c(171, 
    372, 399, 398, 514, 0, 541, 47, 0, 575, 560, 562, 555, 541, 
    561, 229, 0, 274, 265, 252, 252, 252, 305, 0, 560, 480, 481, 
    480, 481, 561, 0, 705, 552, 573, 555, 295, 148, 219, 431, 
    504, 504, 680, 0, 248, 543, 558, 630, 585, 585, 0), WageRate_Qtr1_win = c(43.3043717128677, 
    43.4131869101433, 0, 41.9544881622515, 48.2659956642104, 
    47.2449494949495, 35.9983541708409, 41.3031848066672, 56.6937273761825, 
    24.7956827918709, 25.9493465702748, 27.0916051809753, 26.253773652143, 
    27.0662163824021, 27.4366932848611, 27.4042327702047, 11.4044728836391, 
    14.335376617504, 14.3048656773721, 0, 13.6525024822069, 12.2887340458688, 
    0, 15.9253909839616, 20.9439285851792, 21.7778834237827, 
    22.3771697253116, 22.6229427394602, 23.7895766369586, 24.8010525527916, 
    25.5892857142857, 12.4252650259045, 12.7757405476915, 13.1334676426998, 
    13.8578753724831, 11.8363013984443, 12.1387996904973, 12.4276525676704, 
    12.1597887709879, 14.7529648648527, 15.2476871543149, 15.702784460952, 
    16.9617151607963, 9.1138252399972, 0, 13.6731357285062, 15.060066588991, 
    17.4432606870817, 19.2969006851764, 0), WageRate_Qtr2_win = c(45.9568226656651, 
    41.837439603502, 0, 38.576539624741, 42.4493424157285, 0, 
    35.9605558840546, 38.7305247856164, 56.6998350804747, 25.4713849149679, 
    26.3486992516188, 27.1987506535076, 27.1197761144952, 27.3534204843, 
    27.6933342709394, 27.17395758429, 7.98884754630855, 14.2287693825057, 
    14.7078092828027, 12.8177010734353, 13.5240363567662, 13.1892227214721, 
    0, 0, 21.1461470004454, 21.7775474127445, 22.4495494203769, 
    24.9838350176796, 24.6633245955848, 25.4220044419699, 0, 
    12.9586890000244, 23.2881555608737, 13.8216524850837, 12.5526786334986, 
    12.1816727736227, 12.451312029913, 12.435570873043, 12.1597887709879, 
    14.9915474604535, 15.8241915238572, 15.702784460952, 0, 9.25399606271181, 
    13.8747846457374, 13.9243275209509, 15.9198541296792, 17.3121235202231, 
    16.7955610600396, 12.6263452641211), WageRate_Qtr3_win = c(46.1318677927649, 
    39.6924983760856, 37.3369468678559, 43.1961358233926, 46.7448932297056, 
    0, 36.8315393992217, 36.7538954211025, 0, 25.0544204580792, 
    26.8358029009125, 27.2115887282493, 26.877426266279, 27.3379317953292, 
    27.5844005326779, 27.3066753258495, 0, 14.2932812558463, 
    14.7540859361078, 13.6439682170816, 14.0097009773349, 12.7181790528481, 
    15.2391312837302, 0, 20.9439285851792, 22.3138210298329, 
    22.5619156421668, 24.5444338604316, 25.4155087003516, 25.8759455367259, 
    0, 13.815711350232, 13.401846022216, 13.8147006897881, 12.5169668877419, 
    12.180853837638, 12.59181114972, 12.4479166179788, 12.1597887709879, 
    15.13910482873, 15.5698925449117, 15.702784460952, 0, 9.99681069764761, 
    13.8994672359455, 15.5341807102104, 16.5155859888786, 19.4789130157038, 
    19.5335138929595, 19.0781753491658), WageRate_Qtr4_win = c(45.7210809275209, 
    36.1346606684293, 42.0558605575308, 41.8589400028706, 44.8456045454866, 
    0, 36.7290722201433, 21.7787375946349, 0, 25.5747553335689, 
    26.1818211495457, 27.0415331907187, 27.1459746471261, 27.3831857036848, 
    27.6219577156845, 27.0776792663138, 0, 14.3253423223992, 
    14.5523382178142, 14.708323182135, 14.1601003437046, 14.4225006902332, 
    15.0439458168303, 0, 22.4292049945684, 22.9280492078015, 
    23.1153194969942, 24.1070514617635, 25.5725527145486, 26.0014971692103, 
    0, 13.8087874436826, 13.2189966907032, 13.3203778755268, 
    13.7968124293973, 12.2074453522323, 12.5763610746897, 12.4086574989861, 
    12.1597887709879, 15.6729075196714, 15.8988339367056, 16.0260770822069, 
    0, 10.2583322992973, 14.0333428407849, 15.5204475323575, 
    17.0111714892106, 17.0417792070066, 16.8333396394336, 0)), row.names = c(NA, 
-50L), class = c("tbl_df", "tbl", "data.frame"))
1 Answers

I would work with some auxiliary variables.

    df <- df %>% 
    group_by(PersonID) %>% 
    mutate(LayoffTimeID_max = max(LayoffTimeID, na.rm = TRUE),
           PermSeparation_max = max(PermSeparation, na.rm = TRUE),
           Enroll_Post_Disp = case_when(PermSeparation_max == 1 & TimeID_PSE > LayoffTimeID_max ~ 1, 
                                        TRUE ~ 0)) %>% 
    select(-c(LayoffTimeID_max,PermSeparation_max))
Related