R-创建时间使用变量

R-创建时间使用变量,r,stata,R,Stata,我想使用UKTUS数据库在R中创建时间使用变量 UKTUS将数据集定义的每10分钟的人员活动记录为act1\u 1,act1\u 2,…,act1\u 144变量(144 x 10分钟) 每个活动都被分解为不同的编码方案。例如,睡眠编码如下: 110睡眠 111躺在床上不睡觉 120人卧病在床 我在R中创建了一个包含129列和16533行的矩阵 Activities <-uktus15_diary_wide[,c ("serial", "pnum","ddayw","DVAge", "dm

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

UKTUS将数据集定义的每10分钟的人员活动记录为
act1\u 1
act1\u 2
,…,
act1\u 144
变量(144 x 10分钟)

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

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")]

Activities这里是循环和if语句的R语法+15“用作活动”列在其他15列之后的db中开始

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)
}

tv你能谈谈你想要达到的目标吗?我已经添加了
[stata]
标签,也许它会给这个问题带来同时具备这两种技能的人。@markus谢谢你的帮助。我想要一个名为TV的变量,它由以下代码定义:TV和VIDEO;8210未指定的电视视频或DVD观看;8211在电视上看电影;8212在电视上观看体育节目;8219其他指定电视观看;8220未指定的视频观看;8221观看视频电影;8222观看体育录像;8229其他指定的视频观看;因此,在Stata中,您有144个变量
act1_1
act1_2
act1_144
,您需要知道它们在指定范围内的次数。你的第一步包括清楚地解释你是如何在R中保存数据的。翻译成更简单的东西,因为没有人知道答案(不是我;我是一个Stata人)想要或需要一个144列的例子。编辑你的问题;不要在评论中添加重要的细节。亲爱的Nar,谢谢你的代码。不幸的是,当我编译时,我收到一个列名act1_144,其值从0到1100分钟不等。然而,当我在Stata进行统计测试时,TV变量的平均值和标准偏差不匹配。在stata中,TV的标准偏差为233.8124,平均值为295.4556。在R中,TV的标准偏差为128。平均值为138.5441。你能帮我做这个吗。这是sum命令的到期日吗?谢谢这是因为活动矩阵的定义;缺少for循环-它只读取第144列,而不是全部活动矩阵?谢谢你?你能告诉我你是如何计算平均值和st dev的吗?谢谢亲爱的Nar,基本上我在Stata中创建了一个do文件,代码如下:generate tv=0 generate radio=0 for Values i=1/144{replace tv=tv+10 if(act1
i'<8230)replace radio=10 if(act1-
i'>8229&act1-
i'<8321)}。运行summary TV Stata命令以接收平均值和标准偏差后,感谢您的帮助-代码很好。如果您有时间,您可以帮我做两件事:(1)如何将变量命名为TV或RADIO(2)如何按标识符对电视和收音机进行分组-串行和pnum变量。谢谢
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)
}