楼主: LMingP
3253 4

[编程问题求助] 将local作为forvalues的range取值范围最大值,应该如何使用?怎样计算变量观测值个数 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

75%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
57.8872
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
118 点
帖子
17
精华
0
在线时间
112 小时
注册时间
2018-7-14
最后登录
2025-10-11

楼主
LMingP 学生认证  发表于 2019-3-5 16:42:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
1.想得到字符串变量ye的观测值数(the number of observations),记作ye_N。
想得到数值型变量so1的观测值数,记作so1_N。
2.想将ye_N和so1_N作为下一步forvalues循环中range范围的最大值。
数据集如下
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str9 ye double so1
  4. "wwater1"   13345.45
  5. "wwater2"      20437
  6. "wwater3"      28539
  7. "wwater4"      31424
  8. "lnwwater1"    25209
  9. "lnwwater2"    29522
  10. "lnwwater3"    28392
  11. "lnwwater4"    20156
  12. "so1"          17409
  13. "so2"          17685
  14. "so3"              .
  15. "so4"          17168
  16. "lnso1"        16014
  17. "lnso2"        14738
  18. "lnso3"         8023
  19. "lnso4"        48492
  20. "pwater1"      43071
  21. "pwater2"      53913
  22. "pwater3"      55894
  23. "pwater4"      58123
  24. "lnpwater1"    65625
  25. "lnpwater2"    56616
  26. "lnpwater3"    63613
  27. "lnpwater4"    47728
  28. ""             46373
  29. ""             39364
  30. ""             37246
  31. ""             38704
  32. ""             33333
  33. ""             17436
  34. end
复制代码



自己写的命令如下,有三个问题想请教:一、如何求某个或几个变量的观测值数?
二、求变量观测值,将local定义的局部宏展示出来时
  1. `ye_N'         //可以显示结果
  2. di `ye_N'     //却报错,请问是为什么?
复制代码

三、如何将local储存的数值作为forvalues循环的最大取值?
我的forvalues部分命令中显示invalid syntax。请问这个地方的语法应该怎么用?help过forvalues,没有找到它使用local的例子。
命令如下:
  1. local ye_N  count if ye!=""
  2. `ye_N'
  3. di `ye_N'

  4. local so1_N count if so1 !=.
  5. `so1_N'
  6. di `so1_N'

  7. forvalues i=1(1)`ye_N'{
  8. di `i'
  9. }
  10. forvalues j=1(1)`so1_N'{
  11. di `j'
  12. }
复制代码
恳请各位老师同学指点,非常感谢!








二维码

扫码加我 拉你入群

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

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


回帖推荐

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

沙发
黃河泉 在职认证  发表于 2019-3-5 16:59:35
看不太懂你要求什么?请举例说明。

藤椅
蓝色 发表于 2019-3-5 17:02:36
  1. * Example generated by -dataex-. To install: ssc install dataex
  2. clear
  3. input str9 ye double so1
  4. "wwater1"   13345.45
  5. "wwater2"      20437
  6. "wwater3"      28539
  7. "wwater4"      31424
  8. "lnwwater1"    25209
  9. "lnwwater2"    29522
  10. "lnwwater3"    28392
  11. "lnwwater4"    20156
  12. "so1"          17409
  13. "so2"          17685
  14. "so3"              .
  15. "so4"          17168
  16. "lnso1"        16014
  17. "lnso2"        14738
  18. "lnso3"         8023
  19. "lnso4"        48492
  20. "pwater1"      43071
  21. "pwater2"      53913
  22. "pwater3"      55894
  23. "pwater4"      58123
  24. "lnpwater1"    65625
  25. "lnpwater2"    56616
  26. "lnpwater3"    63613
  27. "lnpwater4"    47728
  28. ""             46373
  29. ""             39364
  30. ""             37246
  31. ""             38704
  32. ""             33333
  33. ""             17436
  34. end

  35. count if ye~=""
  36. local ye_N =r(N)

  37. count if so1~=.
  38. local so1_N =r(N)


  39. forvalues i=1(1)`ye_N'{
  40. di `i'
  41. }
  42. forvalues j=1(1)`so1_N'{
  43. di `j'
  44. }
复制代码


板凳
LMingP 学生认证  发表于 2019-3-5 17:23:09
蓝色 发表于 2019-3-5 17:02
谢谢您!谢谢您!感谢感谢,我知道我错在哪里了,应该在计算变量观测值个数的时候分为两步,count计算出来的观测值数是储存在r(N)里的,感谢,受教了

报纸
LMingP 学生认证  发表于 2019-3-5 17:24:19
黃河泉 发表于 2019-3-5 16:59
看不太懂你要求什么?请举例说明。
黄老师,蓝色同学的回复完美的解答了我的问题。打扰了,谢谢您!

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

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