home ABOUT KLIPS FAQ
ABOUT KLIPS

FAQ

  • question
    If there are too many missing values in Wage Workers' work hour variable
  • If there are too many missing values in Wage Workers' work hour variable

     

     

     This is an error that is caused when the KLIPS work hour variable has not been built
    properly. It usually occurs when only the variable “p181004 : (main job) average weekly
    work hours (wage)” was used.
     KLIPS surveys work hours using the type survey. Questions on work hours are different
    between wage workers and non-wage workers.


    For wage workers, they ask:
     ① If formal work hours are defined,
     ② If not, what are the average hours worked per week, excluding meal time,
     ③ If yes, what are the formal work hours per week, excluding meal time; if there are any
         hours worked in addition to the formal work hours; if yes, how many additional hours have
         been worked per week.


     For non-wage workers, there is only one question simply asking them about how many
    hours they work per week.
     Following is an example of generating the work hour variable for wage workers.

     


    *===========================;
    * SAS Generating Working Hours Variable
    *===========================;

    data p18; set a.klips18p;
    /* variable description
    p181003 : fixed work hours at main job y/n =1/2
    p181004 : avg. weekly work hours at main job
    p181006 : regular weekly work hours at main job
    p181011 : whether working overtime at main job y/n = 2/1
    p181012 : avg. weekly overtime hours at main job */
    array w[3] p181004 p181006 p181012; /* discard missing values */
    do i=1 to 3
    if w[i] =-1 then w[i]=.
    end
    if p181003=2 then worktime=p181004; /* avg. work hours */
    if p181003=1 and p181011=1 then worktime=p1871006;
    if p181003=1 and p181011=2 then worktime=sum(of p181006, p181012); /* regular +
    overtime hours */
    /* checking for impossible work hours */
    proc freq table p181004 p181006 p181012;
    proc print where p181012>168 var pid p181012;
    run
    data hours; set p18(keep=worktime); /* plotting graph of work hours */
    proc chart data=hours; vbar worktime; title 'Hours worked per week'
    run

     


    *===========================.
    * Generating working hour variable from SPSS .
    *===========================.


    get file='D:\18차\users guide\18차년도\klips18p.sav'.
    recode p181004 p181006 p181012(-1=sysmis).
    if (p181003=2) worktime=p181004.
    if (p181003=1 and p181011=1) worktime=p181006.
    if (p181003=1 and p181011=2) worktime=sum(p181006, p181012).
    GRAPH /HISTOGRAM=worktime.
    /* checking for impossible work hours */
    select if (p181012>168).
    list pid p181012.

     


    /*======================================*/
    /* Generating working hour variable from stata */
    /*======================================*/


    clear
    use klips18p, clear
    recode p181004 p181006 p181012(-1=.)
    egen worktime=rowtotal(p181006 p181012) if p181003==1 & p181011==2
    replace worktime=p181004 if p181003==2
    replace worktime=p181006 if p181003==1 & p181011==1
    histogram worktime
    /* checking for impossible work hours */
    keep if p181012>168
    tab pid p181012​

     

     

     

    <KLIPS User's Guide (Wave 1~18th) FAQ Q24>

     

     

  • 작성자
    조진호