楼主: mushroom118
1971 14

[数据管理求助] 请教字符型时刻点变量转换问题 [推广有奖]

  • 1关注
  • 0粉丝

本科生

32%

还不是VIP/贵宾

-

威望
0
论坛币
111 个
通用积分
25.7898
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
5625 点
帖子
17
精华
0
在线时间
160 小时
注册时间
2019-2-22
最后登录
2025-1-5

楼主
mushroom118 在职认证  学生认证  发表于 2019-4-20 11:34:49 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位老师们,现有一份数据,其中一个变量为睡眠时间点,是字符型变量,且样式为6:00AM或6:00PM(而且PM和AM还没有填写完整,只是写了"A"或"P",如图),因为想做睡眠时间点的分段讨论,所以想将他们转换成数值型的时间点,困扰许久实在是无从下手,恳请各位老师不吝赐教!因含有字符所以用destring也全部为missing value



  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str8 aid str6 H1GH50
  4. "57100270" "12:00A"
  5. "57101310" "11:00P"
  6. "57103171" "10:00P"
  7. "57103869" "12:00P"
  8. "57104553" "11:00P"
  9. "57104649" "09:30P"
  10. "57104676" "09:00P"
  11. "57109625" "09:30P"
  12. "57110897" "10:00A"
  13. "57111071" "10:00P"
  14. "57111786" "09:00P"
  15. "57113943" "10:00P"
  16. "57116359" "11:00P"
  17. "57117542" "12:00A"
  18. "57117997" "09:00P"
  19. "57118381" "10:00P"
  20. "57118943" "11:30P"
  21. "57120005" "10:00P"
  22. "57120046" "10:00P"
  23. "57120371" "01:00A"
  24. end
复制代码


QQ图片20190420113337.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:睡眠时间 时间点 数值型 字符型

回帖推荐

黃河泉 发表于6楼  查看完整内容

Clyde 之回答 (与蓝色版主类似):

蓝色 发表于3楼  查看完整内容

沙发
黃河泉 在职认证  发表于 2019-4-20 12:32:20
你没有日期吗?

藤椅
蓝色 发表于 2019-4-20 13:17:04
  1. replace H1GH50=H1GH50+".M."
  2. gen double clock=clock(H1GH50,"hm")

  3. format clock %tchh:MMA.M.
  4. list
复制代码

板凳
mushroom118 在职认证  学生认证  发表于 2019-4-20 15:24:17
黃河泉 发表于 2019-4-20 12:32
你没有日期吗?
黄老师您好,没有日期的,这是一份调查问卷,问题是平时几点上床睡觉所以没有固定的日期

报纸
mushroom118 在职认证  学生认证  发表于 2019-4-20 15:40:51
蓝色 发表于 2019-4-20 13:17
成功了!!!老师,真的太感谢您了!向您致敬

地板
黃河泉 在职认证  发表于 2019-4-20 16:08:22
mushroom118 发表于 2019-4-20 15:24
黄老师您好,没有日期的,这是一份调查问卷,问题是平时几点上床睡觉所以没有固定的日期
Clyde 之回答 (与蓝色版主类似):
  1. gen double time = clock(H1GH50+"M", "hm")
  2. format time %tcHH:MM
复制代码

7
mushroom118 在职认证  学生认证  发表于 2019-4-22 18:51:58
黃河泉 发表于 2019-4-20 16:08
Clyde 之回答 (与蓝色版主类似):
黄老师感谢您!向您跟蓝色老师致敬

8
mushroom118 在职认证  学生认证  发表于 2019-4-22 20:02:52
黃河泉 发表于 2019-4-20 16:08
Clyde 之回答 (与蓝色版主类似):
黄老师,转换完后我想给这个时间变量做分类然后进行回归讨论,用这些指令后
replace H1GH50="1" if H1GH50=="06:00P.M."
replace H1GH50="2" if H1GH50=="09:00P.M."
replace H1GH50="3" if H1GH50=="11:00P.M."
说是type mismatch,我是新手所以就不懂了呀,请问该怎么办呢,这种情形是不是回归都做不了了呢,请老师指教!感谢您

9
黃河泉 在职认证  发表于 2019-4-23 06:18:10
mushroom118 发表于 2019-4-22 20:02
黄老师,转换完后我想给这个时间变量做分类然后进行回归讨论,用这些指令后
replace H1GH50="1" if H1GH ...
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html

10
mushroom118 在职认证  学生认证  发表于 2019-4-23 12:03:06
黃河泉 发表于 2019-4-23 06:18
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并 ...
十分抱歉老师!现附上资料:
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str8 aid double(sleep_time sleep_school) byte academic
  4. "91573323" 75600000 79200000 0
  5. "98574218" 82800000 79200000 1
  6. "99710187" 82800000 82800000 1
  7. "90576758"  3600000 82800000 1
  8. "90574744" 79200000 79200000 1
  9. "92714212" 75600000 79200000 1
  10. "97572292" 81000000 82800000 1
  11. "96574115" 82800000 82800000 1
  12. "90719934"        0 84600000 1
  13. "96714336" 82800000 84600000 1
  14. "90573819"  7200000  7200000 1
  15. "97506047" 77400000 75600000 1
  16. "91716098" 75600000 75600000 1
  17. "99573257"        0 48600000 1
  18. "91718085" 75600000 79200000 1
  19. "99716979" 81000000        0 1
  20. "95717861" 75600000 75600000 1
  21. "93574494" 43200000 43200000 1
  22. "95574790" 10800000 82800000 1
  23. "97572216"  1800000 82800000 1
  24. end
  25. format %tchh:MMA.M. sleep_time
  26. format %tchh:MMA.M. sleep_school
  27. label values academic H4ED2
  28. label def H4ED2 1 "(1) 8th grade or less", modify
复制代码

图片1.png

黄老师,我想给这两个时间变量(sleep_time 和 sleep_school,原资料为字符型,没有日期只有时间,现资料是转换后的)按照两个小时为一段做分类,然后与结果变量academic进行回归讨论,用这些指令,例如
replace H1GH50="1" if H1GH50=="06:00P.M."
replace H1GH50="2" if H1GH50=="09:00P.M."
replace H1GH50="3" if H1GH50=="11:00P.M."
说是type mismatch,我试着转换成别的格式可是造成数据大量缺失,请问该怎么办呢,请老师指教!感谢您!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 01:32