楼主: dreistein94
2921 3

[数据管理求助] Stata如何提取特定条件下变量取值作为常量? [推广有奖]

  • 0关注
  • 0粉丝

本科生

46%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
60.4204
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
215 点
帖子
19
精华
0
在线时间
167 小时
注册时间
2016-10-27
最后登录
2024-7-8

楼主
dreistein94 学生认证  发表于 2021-9-24 20:59:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我希望通过条件提取变量的某个值作为一个常量来进行后续的处理。比如我希望知道` NationName == "中国"` 的时候 `CPI2020` 这个变量的取值,并且希望将之提取到暂元中。
我尝试过:
local x = CPI2020 if NationName == "中国"

scalar x = CPI2020 if NationName == "中国"
但是都报错不允许使用 if
不知道哪位大佬能出手援助一下?
我现在的一个迂回的做法是,确认当 sort CPI2020 后,中国的数据不会再变化,人工确认其在 101 行,直接提取 CPI2020[101]
但是一旦数据更新,就可能发生变动

  1. ----------------------- copy starting from the next line -----------------------
  2. [CODE]
  3. * Example generated by -dataex-. For more info, type help dataex
  4. clear
  5. input str54 NationName str44 Country byte CPI2020
  6. " 阿富汗"                      "Afghanistan"              19
  7. " 安哥拉"                      "Angola"                   27
  8. " 阿尔巴尼亚"                "Albania"                  36
  9. " 阿联酋"                      "UAE"                      71
  10. " 阿根廷"                      "Argentina"                42
  11. " 亚美尼亚"                   "Armenia"                  49
  12. " 澳大利亚"                   "Australia"                77
  13. " 奥地利"                      "Austria"                  76
  14. " 阿塞拜疆"                   "Azerbaijan"               30
  15. " 布隆迪"                      "Burundi"                  19
  16. " 比利时"                      "Belgium"                  76
  17. " 贝宁"                         "Benin"                    41
  18. " 布基纳法索"                "Burkina Faso"             40
  19. " 孟加拉国"                   "Bangladesh"               26
  20. " 保加利亚"                   "Bulgaria"                 44
  21. " 巴林"                         "Bahrain"                  42
  22. " 巴哈马"                      "Bahamas"                  63
  23. " 波斯尼亚和黑塞哥维那" "Bosnia and Herzegovina"   35
  24. " 白俄罗斯"                   "Belarus"                  47
  25. " 玻利维亚"                   "Bolivia"                  31
  26. " 巴西"                         "Brazil"                   38
  27. " 巴巴多斯"                   "Barbados"                 64
  28. " 文莱"                         "Brunei"                   60
  29. " 不丹"                         "Bhutan"                   68
  30. " 博茨瓦纳"                   "Botswana"                 60
  31. " 中非"                         "Central African Republic" 26
  32. " 加拿大"                      "Canada"                   77
  33. " 瑞士"                         "Switzerland"              85
  34. " 智利"                         "Chile"                    67
  35. " 中国"                         "China"                    42
  36. " 科特迪瓦"                   "Côte d’Ivoire"         36
  37. " 喀麦隆"                      "Cameroon"                 25
  38. " 刚果(金)"                "Congo, DR"                18
  39. " 刚果(布)"                "Congo"                    19
  40. " 哥伦比亚"                   "Colombia"                 39
  41. " 科摩罗"                      "Comoros"                  21
  42. " 佛得角"                      "Cabo Verde"               58
  43. " 哥斯达黎加"                "Costa Rica"               57
  44. " 古巴"                         "Cuba"                     47
  45. " 塞浦路斯"                   "Cyprus"                   57
  46. " 捷克"                         "Czech Republic"           54
  47. " 德国"                         "Germany"                  80
  48. " 吉布提"                      "Djibouti"                 27
  49. " 多米尼克"                   "Dominica"                 55
  50. " 丹麦"                         "Denmark"                  88
  51. " 多米尼加"                   "Dominican Republic"       28
  52. " 阿尔及利亚"                "Algeria"                  36
  53. " 厄瓜多尔"                   "Ecuador"                  39
  54. " 埃及"                         "Egypt"                    33
  55. " 厄立特里亚"                "Eritrea"                  21
  56. " 西班牙"                      "Spain"                    62
  57. " 爱沙尼亚"                   "Estonia"                  75
  58. " 埃塞俄比亚"                "Ethiopia"                 38
  59. " 芬兰"                         "Finland"                  85
  60. " 法国"                         "France"                   69
  61. " 加蓬"                         "Gabon"                    30
  62. " 英国"                         "United Kingdom"           77
  63. " 格鲁吉亚"                   "Georgia"                  56
  64. " 加纳"                         "Ghana"                    43
  65. " 几内亚"                      "Guinea"                   28
  66. " 冈比亚"                      "Gambia"                   37
  67. " 几内亚比绍"                "Guinea-Bissau"            19
  68. " 赤道几内亚"                "Equatorial Guinea"        16
  69. " 希腊"                         "Greece"                   50
  70. " 格林纳达"                   "Grenada"                  53
  71. " 危地马拉"                   "Guatemala"                25
  72. " 圭亚那"                      "Guyana"                   41
  73. " 香港"                         "Hong Kong"                77
  74. " 洪都拉斯"                   "Honduras"                 24
  75. " 克罗地亚"                   "Croatia"                  47
  76. " 海地"                         "Haiti"                    18
  77. " 匈牙利"                      "Hungary"                  44
  78. " 印尼"                         "Indonesia"                37
  79. " 印度"                         "India"                    40
  80. " 爱尔兰"                      "Ireland"                  72
  81. " 伊朗"                         "Iran"                     25
  82. " 伊拉克"                      "Iraq"                     21
  83. " 冰岛"                         "Iceland"                  75
  84. " 以色列"                      "Israel"                   60
  85. " 意大利"                      "Italy"                    53
  86. " 牙买加"                      "Jamaica"                  44
  87. " 约旦"                         "Jordan"                   49
  88. " 日本"                         "Japan"                    74
  89. " 哈萨克斯坦"                "Kazakhstan"               38
  90. " 肯尼亚"                      "Kenya"                    31
  91. " 吉尔吉斯斯坦"             "Kyrgyzstan"               31
  92. " 柬埔寨"                      "Cambodia"                 21
  93. " 韩国"                         "Korea, South"             61
  94. " 科威特"                      "Kuwait"                   42
  95. " 老挝"                         "Laos"                     29
  96. " 黎巴嫩"                      "Lebanon"                  25
  97. " 利比里亚"                   "Liberia"                  28
  98. " 利比亚"                      "Libya"                    17
  99. " 圣卢西亚"                   "Saint Lucia"              56
  100. " 斯里兰卡"                   "Sri Lanka"                38
  101. " 莱索托"                      "Lesotho"                  41
  102. " 立陶宛"                      "Lithuania"                60
  103. " 卢森堡"                      "Luxembourg"               80
  104. " 拉脱维亚"                   "Latvia"                   57
  105. " 摩洛哥"                      "Morocco"                  40
  106. end
复制代码

------------------ copy up to and including the previous line ------------------
[/code]


二维码

扫码加我 拉你入群

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

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

关键词:Stata 如何提取 tata Switzerland Afghanistan Stata 数据处理

沙发
wdlbcj 学生认证  发表于 2021-9-25 21:03:59
想了一下,暂时没有漂亮的方法,所以这是一个很繁琐的办法,但应该能解决问题
主要是先提取数据,然后导入到scalar中 进而导入暂元中
如果有更好的方法,烦请回复一下,让我学习

gen x = CPI2020 if NationName == "中国"

sum x
return list

scalar xx=r(mean)

local qq xx

dis `qq'

drop x

dis `qq'

藤椅
sungmoo 发表于 2021-10-8 01:55:05
变量A的每个观测值唯一对应变量B的观测值(相当于,A到B形成了映射),这种情况不是一般情况,Stata没有专门针对这种情况设计命令。

利用这个特点可以用:

su CPI2020 if Country=="Brazil"

这个命令自动会把CPI2020的值(本质是平均值)存入标量r(mean)中。

每用一次,r(mean)的值会变化。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-29 05:24