Reputation: 71
I have a panel df containing employment records for each worker (PersonID).
I want to generate a dummy variable, Enroll_Post_Disp that indicates if a worker enrolled in school after a lay-off OR they participated in a federal retraining program (WFTFLAG==1).
Specifically, I want Enroll_Post_Disp to capture enrollment in school or a retaining program starting 2 quarters before the layoff and any time after a lay-off. I've generated a variable (Time_Diff_Layoff_Enroll_Quarters) that indicates the time difference between each worker's lay-off (i.e., PermSeparation==1) and enrollment in a school, and I want to use this to generate the Enroll_Post_Disp dummy. Note, the Time_Diff_Layoff_Enroll_Quarters variable only applies to workers who enrolled in a school, not for the workers participating in a federal retraining program.
As I see it, the coding criteria for Enroll_Post_Disp is:
Enroll_Post_Disp == 1 if
OR Enroll_Post_Disp == 1 if
I've tried the code below, but I'm getting a "no applicable method for 'slice' applied to an object of class "c('integer', 'numeric')" error.
toy_emp %>%
group_by(PersonID) %>%
mutate(Enroll_Post_Disp = case_when(Time_Diff_Layoff_Enroll_Quarters > -3 & Time_Diff_Layoff_Enroll_Quarters < 60 | WFTFLAG==1 & slice(which(PermSeparation == 1)) ~ 1, TRUE ~ 0))
Here are the first 500 rows of the df:
structure(list(PersonID = c(185, 185, 185, 185, 185, 185, 185,
185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1534,
1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534,
1534, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3234, 3234, 3234,
3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234, 3234,
3234, 3234, 3234, 3234, 3234, 3345, 3345, 3345, 3345, 3345, 3345,
3345, 3345, 3345, 3345, 3345, 3345, 3486, 3486, 3486, 3486, 3486,
3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486,
3486, 3486, 3486, 3743, 3743, 3743, 3743, 3743, 3743, 3743, 3743,
3743, 3743, 3743, 3743, 3743, 4166, 4166, 4166, 4166, 4166, 4166,
4166, 4166, 4166, 4166, 4166, 4166, 4166, 4889, 4889, 4889, 4889,
4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889,
4889, 4889, 4889, 4889, 4910, 4910, 4910, 4910, 4910, 4910, 4910,
4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910,
5062, 5062, 5062, 5062, 5062, 5062, 5062, 5062, 5062, 5062, 5062,
5062, 5062, 5062, 5062, 5062, 5062, 5062, 5062, 5209, 5209, 5209,
5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209,
6306, 6306, 6306, 6306, 6306, 6306, 6306, 6306, 6306, 6477, 6477,
6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477,
6477, 6477, 6477, 7255, 7255, 7255, 7255, 7255, 7255, 7255, 7255,
7255, 7255, 7255, 7255, 7255, 7255, 7255, 7255, 7255, 7255, 7255,
7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645, 7645,
7645, 7645, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914,
8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8914, 8936,
8936, 8936, 8936, 8936, 8936, 8936, 8936, 8936, 8936, 8936, 8936,
8936, 8936, 8936, 8936, 8936, 8936, 8936, 9902, 9902, 9902, 9902,
9902, 9902, 9902, 9902, 9902, 9902, 9902, 9902, 9902, 9902, 9902,
9902, 9902, 9902, 10905, 10905, 10905, 10905, 10905, 10905, 10905,
10905, 10905, 10905, 10905, 10905, 10905, 10905, 10905, 10905,
10905, 11498, 11498, 11498, 11498, 11498, 11498, 11498, 11498,
11498, 11498, 11498, 11498, 11498, 11498, 11498, 11498, 11498,
11498, 11498, 11500, 11500, 11500, 11500, 11500, 11500, 11500,
11500, 11500, 11500, 11500, 11500, 11500, 11500, 11500, 11500,
11500, 11500, 11500, 13043, 13043, 13043, 13043, 13043, 13043,
13043, 13043, 13043, 13043, 13043, 13043, 13043, 13043, 13043,
13043, 13043, 13043, 13043, 13606, 13606, 13606, 13606, 13606,
13606, 13606, 13606, 13606, 13606, 13606, 13606, 13606, 13606,
13606, 13606, 13606, 13606, 14083, 14083, 14083, 14083, 14083,
14083, 14083, 14083, 14083, 14083, 14083, 14083, 14083, 14083,
14083, 14083, 14083, 14083, 14083, 17188, 17188, 17188, 17188,
17188, 17188, 17188, 17188, 17188, 17188, 17188, 17188, 17188,
17188, 17188, 17188, 18300, 18300, 18300, 18300, 18300, 18300,
18300, 18300, 18300, 18300, 18300, 18300, 18300, 18300, 18300,
18300, 18300, 18300, 18300, 19202, 19202, 19202, 19202, 19202,
19202, 19202, 19202, 19202, 19202), Year = c(2003, 2004, 2005,
2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
2015, 2016, 2017, 2018, 2019, 2020, 2021, 2003, 2010, 2011, 2012,
2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
2017, 2018, 2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007, 2008,
2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
2020, 2021, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012, 2013, 2014, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
2014, 2015, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
2021, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
2017, 2018, 2019, 2020, 2021, 2003, 2004, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2013, 2005, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2003,
2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
2015, 2016, 2017, 2018, 2019, 2020, 2021, 2003, 2004, 2005, 2006,
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
2018, 2019, 2020, 2021, 2003, 2004, 2005, 2006, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
2014, 2015, 2018, 2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
2017, 2018, 2019, 2020, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
2021, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2016, 2017, 2018, 2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007,
2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2019, 2020, 2021, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012), LayoffTimeID = structure(c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, 17896, NA, NA, NA, NA, NA, NA, NA,
NA, 13969, NA, 14974, NA, NA, 15978, NA, NA, 16891, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
17621, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 16891, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 15430, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 17347, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, 15705, 15795, NA, NA, NA, NA, NA, NA, NA, 14334,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 14244, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, 16525, NA, NA, 17621, NA, NA, NA, NA, NA, NA, NA, 14609,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 15064, 15430, 15795, 16160, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 16435, 16800,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 15613,
15978, 16343, 16708, NA, NA, NA, NA, NA, NA, NA, NA, 14334, NA,
NA, NA, NA, NA, NA, NA, NA, NA, 16070, NA, NA, NA, 17439, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 14699, 15064, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 14060, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, 16160, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 13969,
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, 17621, NA, NA, NA,
NA, NA, NA, NA, 13878, 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, 17074,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 17712, NA, NA, NA, NA, NA, NA, NA, NA, 14244,
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, 17712, NA, NA,
NA, NA, NA, NA, 13878, 14244, 14609, NA, NA, 15705, 16070, 16435,
NA, NA, 17531, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 15430,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 14152,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 14882, NA, 15430), class = "Date"), Time_To_Layoff = c(-13,
-12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3,
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2,
-1, 0, 1, 2, 3, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5,
-9, -8, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
0, 1, 2, 3, 4, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 3, -6,
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-5, -4, -3, -2, -1, 0, 2, 3, 4, 5, 6, 7, 8, -8, -7, -6, -5, -4,
-3, -2, -1, 0, 1, 2, 3, 4, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, -11, -10, -9, -8, -7, -6, -5, -4,
-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, -12, -11, -10, -9, -8, -7, -6,
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, -11, -10, -9, -8, -7,
-6, -5, -4, -3, -2, -1, 0, 1, 2, -6, -5, -4, -3, -2, -1, 0, 1,
2, -17, -16, -15, -9, -8, -7, -6, -5, -3, -2, -1, 0, 1, 2, 3,
4, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, -6, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, -11, -10,
-9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, -5,
-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
-15, -14, -13, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1,
0, 1, 2, 3, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4,
-3, 0, 1, 2, 3, 4, 5, -15, -14, -13, -12, -11, -10, -9, -8, -7,
-6, -5, -4, -3, -2, -1, 0, 1, 2, 3, -5, -4, -3, -2, -1, 0, 1,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -15, -14, -13, -12, -11,
-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, -11, -10, -9,
-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 6, 8, 9, 10, -6,
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -5, -4, -3,
-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -9, -8,
-7, -6, -5, -4, -3, -2, -1, 0), Time_Diff_Layoff_Enroll_Quarters = c(NA,
-56.054794520548, -52.054794520548, 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, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, -29.0301369863014, -25.0301369863014,
-21.0301369863014, NA, -13.0191780821918, NA, NA, NA, NA, NA,
NA, NA, 17.5890410958904, 19.1232876712329, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, -37.041095890411, -33.0301369863014, -29.0301369863014,
NA, NA, NA, NA, NA, NA, NA, NA, NA, -21.0301369863014, -17.0191780821918,
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, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
-33.0301369863014, -29.0301369863014, NA, NA, NA, NA, NA, -5.0082191780822,
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, NA, NA, NA, NA,
NA, NA, NA, NA, -35.0356164383562, 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, -18.027397260274, 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, NA, NA, NA, NA, NA, NA,
NA, -53.0410958904108, -49.0410958904108, NA, -37.0301369863014,
-33.0301369863014, 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, 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, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, -56.0657534246576,
-52.054794520548, -48.054794520548, -44.054794520548, NA, NA,
NA, NA, NA, NA, NA, NA, NA, -5.43561643835616, -3.9013698630137,
0.0876712328767124, 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, NA, NA, NA, 2.99178082191781), PermSeparation = c(0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 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, 1, 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, 1, 0, 0, 0,
0, 0, 0, 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, 1, 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, 1, 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, 1, 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, 1, 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, 1, 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, 1, 0, 0, 0, 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, 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, 1, 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, 1, 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, 1), 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, 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, 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, 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, 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, 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,
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, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 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, 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, 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, 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, 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, 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, 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,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -500L), groups = structure(list(
PersonID = c(185, 278, 1360, 1534, 3136, 3234, 3345, 3486,
3743, 4166, 4889, 4910, 5062, 5209, 6306, 6477, 7255, 7645,
8914, 8936, 9902, 10905, 11498, 11500, 13043, 13606, 14083,
17188, 18300, 19202), .rows = structure(list(1:17, 18:36,
37:54, 55:67, 68:85, 86:104, 105:116, 117:135, 136:148,
149:161, 162:180, 181:198, 199:217, 218:231, 232:240,
241:256, 257:275, 276:288, 289:307, 308:326, 327:344,
345:361, 362:380, 381:399, 400:418, 419:436, 437:455,
456:471, 472:490, 491:500), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -30L), .drop = TRUE))
Upvotes: 0
Views: 46
Reputation: 3293
You can use cummax
to determine if PermSeparation has ever been 1. You can use lag(cummax(PermSeparation), default = 0)
to determine if PermSeparation happened before the current row.
toy_emp |>
group_by(PersonID) |>
mutate(Enroll_Post_Disp = case_when(Time_Diff_Layoff_Enroll_Quarters > -3 & Time_Diff_Layoff_Enroll_Quarters < 60 ~ 1,
WFTFLAG==1 & lag(cummax(PermSeparation), default = 0) == 1 ~ 1,
TRUE ~ 0))
Since you're already using case_when
, you may as well break up your logical cases across lines of code.
Upvotes: 1