R-创建时间使用变量

时间:2018-08-15 06:38:53

标签: r stata

我想使用UKTUS数据库在R中创建时间使用变量。

UKTUS将数据集定义为act1_1act1_2,...,act1_144变量的每10分钟的人员活动记录(144 x 10分钟)。

每个活动都分解为不同的编码方案。例如,SLEEP的编码如下:

110睡眠 111在床上没睡 120生病了

我在R中创建了一个具有129列和16533行的矩阵。

Activities <-uktus15_diary_wide[,c ("serial", "pnum","ddayw","DVAge", "dmonth", "dyear","WhenDiary","AfterDiaryDay","WhereStart","WhereEnd","RushedD","Ordinary","KindOfDay","Trip","enjm1","act1_1, "act1_2", "act1_3", "act1_4", "act1_5", "act1_6", "act1_7", "act1_8", "act1_9", "act1_10",                               "act1_11", "act1_12", "act1_13", "act1_14","act1_15", "act1_16", "act1_17", "act1_18", "act1_19", "                                   "act1_21", "act1_22", "act1_23", "act1_24", "act1_25", "act1_26", "act1_27", "act1_28", "act1_29", "act1_30",
                                    "act1_31", "act1_32", "act1_33", "act1_34", "act1_35", "act1_36", "act1_37", "act1_38", "act1_39", "act1_40",
                                    "act1_41", "act1_42", "act1_43", "act1_44", "act1_45", "act1_46", "act1_47", "act1_48", "act1_49", "act1_50",
                                    "act1_51", "act1_52", "act1_53", "act1_54", "act1_55", "act1_56", "act1_57", "act1_58", "act1_59", "act1_60",
                                    "act1_61", "act1_62", "act1_63", "act1_64", "act1_65", "act1_66", "act1_67", "act1_68", "act1_69", "act1_70",
                                    "act1_71", "act1_72", "act1_73", "act1_74", "act1_75", "act1_76", "act1_77", "act1_78", "act1_79", "act1_80",
                                    "act1_81", "act1_82", "act1_83", "act1_84", "act1_85", "act1_86", "act1_87", "act1_88", "act1_89", "act1_90",
                                    "act1_91", "act1_92", "act1_93", "act1_94", "act1_95", "act1_96", "act1_97", "act1_98", "act1_99", "act1_100",
                                    "act1_101", "act1_102", "act1_103", "act1_104", "act1_105", "act1_106", "act1_107", "act1_108", "act1_109",
                                    "act1_110", "act1_111", "act1_112", "act1_113", "act1_114")]

对于电视变量,我在Stata中生成了代码,但我不知道如何为R重写。有人可以帮我吗?

我有144个时间步;而8209至8230之间的活动与看电视有关。

用于广播/电视变量的状态命令如下:

generate tv = 0
generate radio = 0
forvalues i = 1/144 {
replace tv = tv+10 if (act1_`i’ > 8209 & act1_`i’ < 8230)
replace radio = radio+10 if (act1_`i’ > 8229 & act1_`i’ < 8321)
}

1 个答案:

答案 0 :(得分:0)

这是循环和if语句的R语法。在活动列中使用+15的列在db后面的15个列之后开始。

tv <-0
radio <-0
for (i in 1:144){
  tv <- ifelse(Activities[, i+15]>8209 & Activities[, i+15]<8230, tv+10, tv)
  radio <- ifelse(Activities[, i+15]>8229 & Activities[, i+15]<8321, radio+10, radio)
}