我正在使用Stata。
我正在追踪从TUS获得的描述性统计数据(即时间使用调查):全职工作人员的每日总时间(因为这些数据来自卢森堡,工作日至少为8小时)全职工人)。 因此,我在TUS的子样本上工作,那里只有人被宣布就业。
在此(数据集的子样本)中,每个人有两个观察结果,一个在周末,一个在一周(即,它是一种短面板数据集)。
由于我对那些全职工作的人感兴趣,我想测量这两天中两类人的总工作时间:
[问题1] 如果个人是1或2,我怎样才能创建一个变量为1,否则为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
答案 0 :(得分: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"
第四,我为在w-e工作的ft_workers创建一个等于1的变量
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的变量,而对于那些在工作日工作全职并且在w-e中休息的人来说,等于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"