楼主: benbenbenben
86256 23

[编程问题求助] 关于local 和global 的使用区别是什么   [推广有奖]

11
lizhewenbei 学生认证  发表于 2017-5-13 22:18:45
╰不滅信念 发表于 2014-5-16 10:34
补充一点,引用的方式也是不一样的
比如
感谢您的帖子,请问您说的引用是指?
我复制了您的代码,如何运行才能显示出`a'以及$b?

12
╰不滅信念 学生认证  发表于 2017-5-14 10:48:05
lizhewenbei 发表于 2017-5-13 22:18
感谢您的帖子,请问您说的引用是指?
我复制了您的代码,如何运行才能显示出`a'以及$b?
比如回显之前的a, b字符串:
  1. local a = "aa"
  2. global b = "bb"
  3. dis "`a'"
  4. dis "$b"
复制代码
  1. local num1 10
  2. local num2 2
  3. local oper +
  4. dis `num1' `oper' `num2'
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lizhewenbei + 3 + 3 + 3 精彩帖子

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

13
lizhewenbei 学生认证  发表于 2017-5-14 23:08:30
╰不滅信念 发表于 2017-5-14 10:48
比如回显之前的a, b字符串:或
非常感谢您!

14
破阵dxj 发表于 2017-10-22 21:00:54
太重要了。真棒!

15
xiaomanwu 发表于 2018-6-30 16:11:46
简洁明了

16
晓慧0516 学生认证  发表于 2018-9-27 12:40:29
总结的真好 解决了作为新手的我的问题

17
方荷琴 发表于 2019-1-11 20:19:32
ywh19860616 发表于 2014-5-16 08:29
local是局部宏,就是说如果你在一个do文件中使用,那她只在那个do文件中有效,
这样的一个好处是,在不同的 ...
请问一下,那是不是意味着我在do-file1中用global 定义了x1,那么在这个电脑安装的这个stata中就不能在其他do-file中定义一个不同的x1,但是我发现是可以的,stata并没有报错,所以这个global定义的变量在其他的do-file中同样适用如何理解呢?请指教~

18
ritaing 发表于 2019-1-12 01:09:35
ywh19860616 发表于 2014-5-16 08:29
local是局部宏,就是说如果你在一个do文件中使用,那她只在那个do文件中有效,
这样的一个好处是,在不同的 ...
补充一点或者实际理解,local的使用是一次性的。
比如
  1. clear
  2. set obs 100
  3. gen oldvar=1
  4. local a "myvar"
  5. generate `a' = oldvar
  6. generate a = oldvar
复制代码
一共六行命令,和local相关的是第四行和第五行,这两行一定要一起选中一起运行,不可以单独运行,否则会报错。
如果用global的话,就可以单独运行。
  1. clear
  2. set obs 100
  3. gen oldvar=1
  4. global a "myvar"
  5. generate $a = oldvar
  6. generate a = oldvar
复制代码
在具体使用上,local只在这一次运行中有用,用完立马消失,不留下痕迹。--局部宏
global定义了之后,只要这个stata主窗口没退出,global的定义就可以一直用,换do file或者换数据都可以。--全局宏
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
北方的北方有极光 + 1 + 1 + 1 精彩帖子
╰不滅信念 + 5 + 5 + 5 + 5 热心帮助其他会员

总评分: 论坛币 + 5  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

19
ritaing 发表于 2019-1-12 01:20:03
方荷琴 发表于 2019-1-11 20:19
请问一下,那是不是意味着我在do-file1中用global 定义了x1,那么在这个电脑安装的这个stata中就不能在其 ...
你这个相当于把global关于x1的定义替换掉了,是可以的。只要不改变它,在同一stata窗口,不同的do file的xi都是同一定义。

20
方荷琴 发表于 2019-1-13 15:17:30
ritaing 发表于 2019-1-12 01:20
你这个相当于把global关于x1的定义替换掉了,是可以的。只要不改变它,在同一stata窗口,不同的do file的 ...
多谢指教,谢谢

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

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