搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  sample.dta
资料下载链接地址: https://bbs.pinggu.org/a-2606770.html
附件大小:
多选题在设置录入文件时一般按照哑变量设置,即多选题每个选项都设置为0/1,录入的时候需要在每个选项录入0或1,当多项选择题目数量较多或选项数量较多时,采用上述方法录入工作量较大,此时可以将多选题设置为字符类型,直接录入问卷实际的所有选项。

例如 F7 您患有以下哪些慢性病:1、高血压 2、糖尿病 3、高血脂 4、COPD
答卷实际勾选为 1,2,4

采用哑变量录入设置为 F7-1 = 1
F7-2 = 1
F7-3 = 0
F7-4 = 1

采用实际选项录入设置为 F7 = 1,2,4

这种录入方式需要在后期数据清理时进行拆分,拆分为哑变量形式,以下是如何拆分多选题的代码,可以比较拆分后的哑变量与原来变量的结果

  1. /***********************************************
  2. 拆分多选题为哑变量形式

  3. 多选题在设置录入文件时一般按照哑变量设置,即多选题每个选项都设置为0/1,录入的时候需要
  4. 在每个选项录入0或1,当多项选择题目数量较多或选项数量较多时,采用上述方法录入工作量较大,此时
  5. 可以将多选题设置为字符类型,直接录入问卷实际的所有选项。

  6. 例如
  7. F7 您患有以下哪些慢性病:1、高血压 2、糖尿病 3、高血脂 4、COPD
  8. 答卷实际勾选为 1,2,4

  9. 采用哑变量录入设置为 F7-1 = 1
  10. F7-2 = 1
  11. F7-3 = 0
  12. F7-4 = 1

  13. 采用实际选项录入设置为 F7 = 1,2,4

  14. 这种录入方式需要在后期数据清理时进行拆分,拆分为哑变量形式,以下是如何拆分多选题的代码
  15. 可以比较拆分后的哑变量与原来变量的结果

  16. Date: 2018-08-06
  17. Author: YPP JY
  18. ***********************************************/
  19. use sample.dta,clear
  20. local j n v
  21. foreach v of varlist F7 F25 F101 F112 F113 F115 F118 F120 F121 F326 { // 用 of varlist
  22. local temp=0 // 用于计算依据不同选项生成的变量数量
  23. local oplist 1 2 3 4 5 6 7 8 9 10 88 99 // 初始化oplist

  24. split `v',p(,) gen("new_`v'_")
  25. local nv=`r(nvars)'
  26. di as error "the number of splitted variable in `v':" `nv' // 逗号分隔生成的变量数量

  27. if "`v'"=="F25" { // ==左右两边双引号,以下为不同题目的不同选项
  28. local oplist 1 2 3 4 5 6 7 8 9 88
  29. }

  30. if "`v'"=="F101" {
  31. local oplist 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 66 77 88 99
  32. }

  33. if "`v'"=="F112" | "`v'"=="F113"{
  34. local oplist 1 2 3 4 5 6 88 99
  35. }

  36. if "`v'"=="F115" | "`v'"==F121 {
  37. local oplist 1 2 3 4 5 6 7 8 9 88 99
  38. }

  39. if "`v'"=="F118" {
  40. local oplist 1 2 3 4 5 6 7 8 88
  41. }

  42. if "`v'"=="F120" {
  43. local oplist 1 2 3 4 5 6 7 8 9 10 11 88 99
  44. }

  45. if "`v'"=="F326" {
  46. local oplist 1 2 3 4 5 6 7 88
  47. }

  48. foreach j of local oplist {
  49. quietly generate int `v'_`j'=.
  50. local temp=`temp'+1
  51. forvalue n=1/`nv' {
  52. quietly replace `v'_`j'=1 if new_`v'_`n'=="`j'"
  53. }
  54. order `v'_*,after("`v'")
  55. }
  56. di as error "the number of generated variables in `v':"`temp'

  57. }


  58. drop new*
复制代码






    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-1-31 15:20