Data Cart

Your data extract

0 variables
0 samples
View Cart
WRKTENURE
Tenure in current job (months)

WRKTENURE is a 3-digit numeric variable.

Codes

480 = 480+ months
998 = Unknown
999 = NIU (not in universe)

Explore how IPUMS created this variable

Download


      class Wrktenure : public Editor {

public:
  Wrktenure(VarPointer varInfo) : Editor(varInfo) {}
  void edit() {

    long a = getRecoded();
    switch (dataSet) {
    case dataset_id::es2005h:
    case dataset_id::es2005i:
    case dataset_id::es2005j:
    case dataset_id::es2005k:
    case dataset_id::es2006h:
    case dataset_id::es2006i:
    case dataset_id::es2006j:
    case dataset_id::es2006k:
    case dataset_id::es2007h:
    case dataset_id::es2007i:
    case dataset_id::es2007j:
    case dataset_id::es2007k:
    case dataset_id::es2008h:
    case dataset_id::es2008i:
    case dataset_id::es2008j:
    case dataset_id::es2008k:
    case dataset_id::es2009h:
    case dataset_id::es2009i:
    case dataset_id::es2009j:
    case dataset_id::es2009k:
    case dataset_id::es2010h:
    case dataset_id::es2010i:
    case dataset_id::es2010j:
    case dataset_id::es2010k:
    case dataset_id::es2011h:
    case dataset_id::es2011i:
    case dataset_id::es2011j:
    case dataset_id::es2011k:
    case dataset_id::es2012h:
    case dataset_id::es2012i:
    case dataset_id::es2012j:
    case dataset_id::es2012k:
    case dataset_id::es2013h:
    case dataset_id::es2013i:
    case dataset_id::es2013j:
    case dataset_id::es2013k:
    case dataset_id::es2014h:
    case dataset_id::es2014i:
    case dataset_id::es2014j:
    case dataset_id::es2014k:
    case dataset_id::es2015h:
    case dataset_id::es2015i:
    case dataset_id::es2015j:
    case dataset_id::es2015k:
    case dataset_id::es2016h:
    case dataset_id::es2016i:
    case dataset_id::es2016j:
    case dataset_id::es2016k:
    case dataset_id::es2017h:
    case dataset_id::es2017i:
    case dataset_id::es2017j:
    case dataset_id::es2017k:
    case dataset_id::es2018h:
    case dataset_id::es2018i:
    case dataset_id::es2018j:
    case dataset_id::es2018k:
    case dataset_id::es2019h:
    case dataset_id::es2019i:
    case dataset_id::es2019j:
    case dataset_id::es2019k:
    case dataset_id::es2020h:
    case dataset_id::es2020i:
    case dataset_id::es2020j:
    case dataset_id::es2020k: {
      long tenure = valueFromFirstAvailable(
          {ES2005H_0440_ref, ES2005I_0440_ref, ES2005J_0440_ref,
           ES2005K_0440_ref, ES2006H_0440_ref, ES2006I_0440_ref,
           ES2006J_0440_ref, ES2006K_0440_ref, ES2007H_0440_ref,
           ES2007I_0440_ref, ES2007J_0440_ref, ES2007K_0440_ref,
           ES2008H_0440_ref, ES2008I_0440_ref, ES2008J_0440_ref,
           ES2008K_0440_ref, ES2009H_0440_ref, ES2009I_0440_ref,
           ES2009J_0440_ref, ES2009K_0440_ref, ES2010H_0440_ref,
           ES2010I_0440_ref, ES2010J_0440_ref, ES2010K_0440_ref,
           ES2011H_0440_ref, ES2011I_0440_ref, ES2011J_0440_ref,
           ES2011K_0440_ref, ES2012H_0440_ref, ES2012I_0440_ref,
           ES2012J_0440_ref, ES2012K_0440_ref, ES2013H_0440_ref,
           ES2013I_0440_ref, ES2013J_0440_ref, ES2013K_0440_ref,
           ES2014H_0440_ref, ES2014I_0440_ref, ES2014J_0440_ref,
           ES2014K_0440_ref, ES2015H_0440_ref, ES2015I_0440_ref,
           ES2015J_0440_ref, ES2015K_0440_ref, ES2016H_0440_ref,
           ES2016I_0440_ref, ES2016J_0440_ref, ES2016K_0440_ref,
           ES2017H_0440_ref, ES2017I_0440_ref, ES2017J_0440_ref,
           ES2017K_0440_ref, ES2018H_0440_ref, ES2018I_0440_ref,
           ES2018J_0440_ref, ES2018K_0440_ref, ES2019H_0440_ref,
           ES2019I_0440_ref, ES2019J_0440_ref, ES2019K_0440_ref,
           ES2020H_0440_ref, ES2020I_0440_ref, ES2020J_0440_ref,
           ES2020K_0440_ref});
      if (tenure > 480 && tenure != 999) {
        a = 480;
      }
    } break;
    case dataset_id::it2011h:
    case dataset_id::it2012h:
    case dataset_id::it2013h:
    case dataset_id::it2014h:
    case dataset_id::it2015h:
    case dataset_id::it2016h:
    case dataset_id::it2017h:
    case dataset_id::it2018h:
    case dataset_id::it2019h:
    case dataset_id::it2020h: {
      long tenure = valueFromFirstAvailable(
          {IT2011H_0687_ref, IT2012H_0687_ref, IT2013H_0687_ref,
           IT2014H_0687_ref, IT2015H_0687_ref, IT2016H_0687_ref,
           IT2017H_0687_ref, IT2018H_0687_ref, IT2019H_0687_ref,
           IT2020H_0687_ref});
      if (tenure > 480 && tenure != 999 && tenure != 998) {
        a = 480;
      }
    } break;
    case dataset_id::uy2006a: {
      a = UY2006A_0564() + (UY2006A_0565() * 12);
      if (UY2006A_0564() == 99 && UY2006A_0565() == 99)
        a = 999;
      if (UY2006A_0564() != 99 && UY2006A_0565() == 99)
        a = UY2006A_0564();
      if (UY2006A_0564() == 99 && UY2006A_0565() != 99)
        a = (UY2006A_0565() * 12);
      if (a > 480 && a != 999)
        a = 480;
    } break;
    case dataset_id::mu1990a: {
      if (MU1990A_0448() > 480 && MU1990A_0448() < 998)
        a = 480;
    } break;
    case dataset_id::mu2000a: {
      if (MU2000A_0458() > 40 && MU2000A_0458() < 98)
        a = 480;
      if (MU2000A_0458() > 0 && MU2000A_0458() <= 40)
        a = (MU2000A_0458() * 12);

    } break;
    case dataset_id::mu2011a: {
      if (MU2011A_0490() > 40 && MU2011A_0490() < 98)
        a = 480;
      if (MU2011A_0490() > 0 && MU2011A_0490() <= 40)
        a = (MU2011A_0490() * 12);

    } break;

    case dataset_id::mx2005h:
    case dataset_id::mx2005i:
    case dataset_id::mx2005j:
    case dataset_id::mx2005k:
    case dataset_id::mx2006h:
    case dataset_id::mx2006i:
    case dataset_id::mx2007i:
    case dataset_id::mx2008i:
    case dataset_id::mx2009h:
    case dataset_id::mx2010h:
    case dataset_id::mx2011h:
    case dataset_id::mx2012h:
    case dataset_id::mx2013h:
    case dataset_id::mx2014h:
    case dataset_id::mx2015h:
    case dataset_id::mx2016h:
    case dataset_id::mx2017h:
    case dataset_id::mx2018h:
    case dataset_id::mx2019h:
    case dataset_id::mx2020h: {
      long strprd = valueFromFirstAvailable(
          {MX2005H_0668_ref, MX2005I_0668_ref, MX2005J_0668_ref,
           MX2005K_0668_ref, MX2006H_0668_ref, MX2006I_0668_ref,
           MX2007I_0668_ref, MX2008I_0668_ref, MX2009H_0668_ref,
           MX2010H_0668_ref, MX2011H_0668_ref, MX2012H_0668_ref,
           MX2013H_0668_ref, MX2014H_0668_ref, MX2015H_0668_ref,
           MX2016H_0668_ref, MX2017H_0668_ref, MX2018H_0668_ref,
           MX2019H_0668_ref, MX2020H_0668_ref});
      long stryear = valueFromFirstAvailable(
          {MX2005H_0669_ref, MX2005I_0669_ref, MX2005J_0669_ref,
           MX2005K_0669_ref, MX2006H_0669_ref, MX2006I_0669_ref,
           MX2007I_0669_ref, MX2008I_0669_ref, MX2009H_0669_ref,
           MX2010H_0669_ref, MX2011H_0669_ref, MX2012H_0669_ref,
           MX2013H_0669_ref, MX2014H_0669_ref, MX2015H_0669_ref,
           MX2016H_0669_ref, MX2017H_0669_ref, MX2018H_0669_ref,
           MX2019H_0669_ref, MX2020H_0669_ref});
      long strmonth = valueFromFirstAvailable(
          {MX2005H_0670_ref, MX2005I_0670_ref, MX2005J_0670_ref,
           MX2005K_0670_ref, MX2006H_0670_ref, MX2006I_0670_ref,
           MX2007I_0670_ref, MX2008I_0670_ref, MX2009H_0670_ref,
           MX2010H_0670_ref, MX2011H_0670_ref, MX2012H_0670_ref,
           MX2013H_0670_ref, MX2014H_0670_ref, MX2015H_0670_ref,
           MX2016H_0670_ref, MX2017H_0670_ref, MX2018H_0670_ref,
           MX2019H_0670_ref, MX2020H_0670_ref});
      long intyear = valueFromFirstAvailable(
          {MX2005H_0027_ref, MX2005I_0027_ref, MX2005J_0027_ref,
           MX2005K_0027_ref, MX2006H_0027_ref, MX2006I_0027_ref,
           MX2007I_0027_ref, MX2008I_0027_ref, MX2009H_0027_ref,
           MX2010H_0027_ref, MX2011H_0027_ref, MX2012H_0027_ref,
           MX2013H_0027_ref, MX2014H_0027_ref, MX2015H_0027_ref,
           MX2016H_0027_ref, MX2017H_0027_ref, MX2018H_0027_ref,
           MX2019H_0027_ref, MX2020H_0027_ref});
      long intmonth = valueFromFirstAvailable(
          {MX2005H_0029_ref, MX2005I_0029_ref, MX2005J_0029_ref,
           MX2005K_0029_ref, MX2006H_0029_ref, MX2006I_0029_ref,
           MX2007I_0029_ref, MX2008I_0029_ref, MX2009H_0029_ref,
           MX2010H_0029_ref, MX2011H_0029_ref, MX2012H_0029_ref,
           MX2013H_0029_ref, MX2014H_0029_ref, MX2015H_0029_ref,
           MX2016H_0029_ref, MX2017H_0029_ref, MX2018H_0029_ref,
           MX2019H_0029_ref, MX2020H_0029_ref});
      // Calculate months for people at current job less than 2 years
      if (strprd >= 1 && strprd <= 2 && strmonth != 99) {
        a = ((intyear - stryear) * 12) + (intmonth - strmonth);
      }
      // Unknown months
      if (strprd >= 1 && strprd <= 2 && strmonth == 99) {
        a = 998;
      }
      // Calculate months for people at current job more than 2 years
      if (strprd == 3 && stryear != 99) {
        a = (intyear - stryear) * 12;
      }
      // Unknown start period or unknown years
      if (strprd == 9 || stryear == 9999) {
        a = 998;
      }
      // Implausible values
      if (a < 0 || a >= 999) {
        a = 998;
      }
      // Top-code (periods longer than 997 months are sent to unknown not
      // top-coded)
      if (a > 480 && a < 998) {
        a = 480;
      }
      if (strprd == 0) {
        a = 999;
      }
    } break;
    }

    setData(a);
  }
};