如果 A 列中的任何值大于 R 中的 B 列,在面板中的某个点之后,如何分配虚拟变量?

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?

提问人:Anna 提问时间:9/23/2022 最后编辑:PhilAnna 更新时间:9/23/2022 访问量:98

问:

我有一个 2003 年至 2021 年间工人的不平衡面板数据集。它由 PersonID 使用 plm 包设置。

我想生成一个虚拟变量,用于说明工人在失业后是否在学校就读。

编码标准为:

每组(又名 PersonID):

1.) 如果在 PermSeparation==1 之后,TimeID_PSE 列中的任何值都大于 LayoffTimeID 列中的任何值,则 Enroll_Post_Disp==1(在与 TimeID_PSE 对应的同一行上)。任何不符合此标准的内容都得零分。

我用红色表示我希望输出是什么样子。

例如,TimeID_PSE==20170821 在Enroll_Post_Disp列中获取 1,因为 20170821 > 20151231。TimeID_PSE==20180108也一样。

enter image description here

到目前为止,我已经尝试了以下方法,这让我很接近,但是如果TimeID_PSE值与 LayoffTimeID 在同一上,它只会分配Enroll_Post_Disp虚拟人(如果TimeID_PSE中的值大于 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))

面板数据如下所示(前 50 行):

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"))
r dplyr 操作 数据 清理

评论


答:

1赞 an_ja 9/23/2022 #1

我会使用一些辅助变量。

    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))

评论

0赞 Anna 9/24/2022
是的,我现在明白了我错过了什么。非常感谢。
0赞 Anna 5/20/2023
我也想将 WFTFLAG==1 添加到Enroll_Post_Disp的生成中,但是当我添加它时,R 似乎无法识别 WFTFLAG==1 : 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 & WFTFLAG == 1 ~ 1, 真 ~ 0)) %>% 选择(-c(LayoffTimeID_max,PermSeparation_max))
1赞 an_ja 6/26/2023
它对我有用。使用你的测试 data.frame,它不会显示任何差异,因为你没有任何 WFTFLAG == 1。