2016-08-18 2 views
1

Я использую Stata.Создайте макет для людей с любым из двух условий в течение двух комбинированных периодов

Я получаю описательную статистику, полученную от TUS (т. Е. Опрос об использовании времени): общее ежедневное время, потраченное на работу на полный рабочий день (поскольку эти данные из Люксембурга, рабочий день составляет не менее 8 часов для работников, занятых полный рабочий день). Поэтому я работаю над подвыборкой TUS, где есть только люди, которые заявили, что наняты.

В этом (подвыборке) набора данных есть два наблюдения на человека, одно в выходные и одно в течение недели (т. Е. Это своего рода набор данных с короткими панелями).

Поскольку я заинтересован в только тех людях, которые работают полный рабочий день, я хочу, чтобы измерить общее время работы над этими два днем ​​для двух типов лиц:

  1. людей, которые работают в течение недели, для которому рабочее время составляет 8 или более часов в неделю и 0 в выходной день (суббота и воскресенье);
  2. люди, которые работают в течение недели и в выходные дни (например, официанты, медсестры, водители и т. Д.), Для которых рабочее время составляет 8 или более часов в неделю и 8 или более часов в выходной день ,

[Вопрос 1] Как создать переменную, которая является 1, когда человек либо 1, либо 2. и 0 в противном случае?

[Вопрос 2] После того, как я создал, что фиктивная переменная для работников, занятых полный рабочий день, я хотел бы создать еще одну фиктивную переменную, которая 1 для работников, которые работают только в будние дни и 0 для работников, которые также работают на выходные, как я мог это сделать?

[UPDATE] Здесь я выкладываю часть набора данных в качестве примера (полученный с datasex):

clear 
input double(working_act1 working_act2 working_act3 working_act4) float weekend double id_ind 
0 0     0     0     0 1 4015801 
0 0     0 .3333333333333339 11.666666666666668 0 4017501 
0 0     0     0     0 1 4017501 
0 0     0 .16666666666666785     8 0 4017601 
0 0     0     0     0 1 4017601 
0 0     0     0 8.166666666666668 0 4017602 
0 0     0     0     0 1 4017602 
0 0     0     0 7.166666666666669 0 4017801 
0 0     0     0     0 1 4017801 
0 0 .16666666666666785     0 3.666666666666668 0 4017802 
0 0     0 .33333333333333215     7 1 4017802 
0 0     0     0 12.000000000000002 0 4018001 
0 0     0     0     0 1 4018001 
0 0     0     0 6.333333333333332 0 4018002 
0 0     0     0     0 1 4018002 
0 0     0     0 9.16666666666667 0 4019201 
0 0     0     0 9.16666666666667 1 4019201 
0 0 .16666666666666607     .5 8.333333333333334 0 4019504 
0 0     0     0     0 1 4019504 
0 0     0     0    6.5 0 4019901 
0 0     0     0     8 1 4019901 
0 0     0     0 6.166666666666668 0 4020001 
0 0     0     0     0 1 4020001 
end 
+1

Вопросы здесь должны хотя бы пробовать какой-то код. В противном случае вам лучше всего показать пример данных. Нет причин принуждать других людей придумывать имена переменных, примеры данных и т. Д .: для других довольно сложно понять длинное описание слова. Тип 'ssc inst dataex' для установки программы, что облегчает вам предоставление нам пример данных. –

+0

Большое спасибо за ваше предложение @NickCox! – Fuca26

ответ

1

я работал на ответ на мои два вопроса в течение нескольких дней, и теперь вскоре после того, как я разместил здесь этот вопрос, я нашел ответ, который я разделяю с вами.

Баллы с первого по третий приводят к ответе на вопрос 1; пункты Четвертый и Пятый приводят к ответе на вопрос 2.

Во-первых, я генерирую общее ежедневное рабочее время, которое дается временем, проведенным на четырех взаимоисключающих рабочих действиях (working_act1 working_act2 working_act3 working_act4); переменная выходные == 1, когда наблюдение относится к выходной день и 0 в противном случае

cap drop tsw 
egen tsw  = rowtotal(working_act1 working_act2 working_act3 working_act4) 
label var tsw "Time spent working" 
tab tsw if weekend==0 
tab tsw if weekend==1 

Во-вторых, создать переменную, которая говорит мне ли в определенный день человек либо не работал или работал полный рабочий день

cap drop ft_workrest_day 
gen ft_workrest_day = (tsw >=8) | tsw==0 if weekend==1 
replace ft_workrest_day = (tsw >=8) if weekend==0 
label var ft_workrest_day "Worked_8h or rested" 

В-третьих, я создаю переменную, равную 2 для людей (т.е.Переменная id_ind), который работал один день полный рабочий день и покоилась на другой день, а также для людей, которые работали в течение двух дней для всех остальных людей это значение отсутствует

cap drop ft_worker 
bys id_ind: egen ft_worker = total(cond(ft_workrest_day>0, ft_workrest_day, .)) 
replace ft_worker = . if ft_worker==0 | ft_worker==1 
label var ft_worker "Works at least 8h" 

В-четвертых, создать переменную, которая равен 1 для ft_workers, которые работали в мы

cap drop we_worker_2 
gen we_worker_2 = 0 if ft_worker==2 
replace we_worker_2 = 1 if tsw!=0 & ft_worker==2 & weekend==1 
browse id_ind weekend tsw ft_workrest_day ft_worker we_worker_2 
label var we_worker_2 "Works at least 8h in the w-e" 

Пятым, я создаю переменную, которая равна 1, когда человек работал полный рабочий день в течение двух дней, в то время равно 0 для людей, которые работали полный рабочий день в течение дня недели и отдыхал в нас.

cap drop we_worker_1 
bys id_ind: egen we_worker_1 = max(we_worker_2) 
browse id_ind weekend tsw ft_workrest_day ft_worker we_worker_2 we_worker_1 
label var we_worker_1 "Full-time w-e worker" 
+1

Рад, что вы решили свою проблему. Если вы настроены на то, чтобы сделать это более полезным для других, вы сделаете его самодостаточным, включив пример данных токенов. Каковы общие идеи путешествия? Обратите внимание, что 'gen worker = work_stast == 0' является более кратким решением для вашей первой точки. –

+0

спасибо за сообщение @NickCox. После того, как я привык к команде dataex (спасибо за это тоже!), Я представил образец набора данных в вопросе (см. ** [ОБНОВЛЕНИЕ] **). – Fuca26

+0

Данные примера и код все равно не будут работать вместе. Нет переменной 'work_stat' (или это' work_stast'?). Следовательно, код будет терпеть неудачу при первом блике. –

Смежные вопросы