添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
sysuse auto , clear list price length weight in 1 / 5 local v3 "price length weight" // 将 price length weight 这组字符赋给暂元名 v3 list `v3' in 1 / 5 local cmd "list" // list 这组字符赋给暂元名 cmd `cmd ' `v3' in 1 / 5 // 等价于 list price length weight in 1 / 5 local pre "pri" // 将 pri 这组字符赋给暂元名 pre `cmd ' `pre' tab rep` = 26 * 3 ' // 等价于 tab rep78 , 注意到 26 * 3 = 78 * 类似地可以使用 global 来定义暂元 sysuse auto , clear list price length weight in 1 / 5 global v3 "price length weight" // 将 price length weight 这组字符赋给暂元名 v3 list $v3 in 1 / 5 // 等价于 list price length weight in 1 / 5 global cmd "list" // list 这组字符赋给暂元名 cmd $cmd $v3 in 1 / 5 // 等价于 list price length weight in 1 / 5 ** Global 与 local 的区别 capt prog drop myprog program myprog // 定义程序 myprog local i = "主程序局域" // 定义局域暂元 i global j = "主程序全局" // 定义全局暂元 j di as txt "`i' " // 调用局域暂元 i,这里是显示暂元名 i 中的内容“主程序局域”,绿色 di as txt "$j" // 调用全局暂元 j,这里是显示暂元名 j 中的内容“主程序全局”,绿色 mysub // 执行子程序体 mysub di as error "`i' " // 再次调用局域暂元 i,显示暂元名 i 中的内容“主程序局域” di as error "$j" // 再次调用全局暂元 j,显示 “子程序全局暂元” ,红色 capt prog drop mysub prog mysub // 定义子程序 myprog local i = "子程序局域" // 定义子程序中的局域暂元 i global j = "子程序全局" // 定义子程序中的全局暂元 j di as result "`i'" // 调用局域暂元 i,这里是显示暂元名 i 中的内容“子程序局域暂元” di as result "$j" // 调用全局暂元 j,这里是显示暂元名 j 中的内容“子程序全局暂元” myprog // 执行主程序体 myprog ** 6.4 自带命令参数 captu prog drop listargs prog listargs di "第一个参数为: `1' " di "第二个参数为: `2' " di "第三个参数为: `3' " di "第四个参数为: `4' " listargs listargs I love stata listargs "I love stata" // 区别 local i "I love stata" // 区别 listargs `i' listargs this is a test listargs "this is a test" listargs "this is" "a stata test" 5 ** 另一个办法是采用参数申明的方式。 captu prog drop listargs prog listargs args a b c d di "第一个参数为: `a' " di "第二个参数为: `b' " di "第三个参数为: `c' " di "第四个参数为: `d' " listargs this is a test listargs "this is a test" ** 6.5 scale 标量 scalar a = 2 // 赋予标量 a 的值为 2 dis a + 2 // a + 2 = 2 + 2 = 4 scalar b = a + 3 // b = a + 3 = 2 + 3 = 5 di b // 结果窗口显示出: 5 scalar s = ”hello” // 标量也可以为字符型 di s // 结果窗口显示出 : hello clear set obs 3 input a scalar b = 3 gen v1 = a * b // 回忆线性代数,该命令相当于对 a 的每个值乘 b ( 3 ) input b gen v2 = a * b // 注意 v1 与 v2 这两个命令完全相同 list // v1 与 v2 结果不同,表明 STATA 优先进行变量相乘 gen v3 = a * scalar ( b ) // 当 b 即是变量名又是标量名时,标量相乘时要指明标题 sysuse auto , clear sum price return list // 计算结果同时被存入到如下的标量中 local sum = r ( sum ) // 将总和存入一个叫 sum 的暂元中 di ` sum ' ** 6.6 临时变量和临时数据文件 : tempvar 和 tempfile ** ** * clear set obs 5 tempvar x y // 指明临时变量名为 x 和 y gen `x' = _n // 生成临时变量`x’,取值为 1 , 2 , 3 , 4 , 5 gen `y' = _N // 生成临时变量`y’,取值为 5 , 5 , 5 , 5 , 5 edit // 查看数据编辑器,却并没有变量 gen z = `x '+`y' // 将两个临时变量相加,得到新变量 z edit // 查看数据库,只有新变量 z ** ** * use auto , clear preserve // 表明下面的操作将不破坏当前数据中的文件 keep price weight // 仅保留 price 和 weight 这两个变量 save master , replace // 保存新数据文件 master,该数据包含两个变量 drop weight // 再去掉变量 weight,当前数据中只剩一个变量 weight save part1 , replace // 保存新数据文件 part1,该数据包含一个变量 use master , clear drop price rename weight price append using part1 erase master . dta erase part1 . dta restore // 回到 preserve 命令之前的数据集,即 auto ** ** ** / * 这是一个坏程序,因为中间性数据文件 master 和 part 并不是我们想要的,即使最后有 erase 命令将其删除,一旦在此前强行退出,仍会导致这两个不必要的文件占用空间并造成混乱。 * / ** ** ** preserve keep price weight tempfile master part1 save “`master’” drop weight save “`part1’” use “`master’” , clear drop price rename weight price append using “`part1’” restore / * 在这种情形下,无论是出现运行错误还是中途中止,都不会破坏原数据文件,也不会产生 垃圾文件。 * /
计算机简介 现代计算机设备的组成部分包括运算器、控制器、存储器、输入设备、输出设备,。还可以概括为以下三点: IO:与外部部件交互:磁盘、网卡CPU:运算器、控制器;CPU指令集(特权指令:OS运行特权指令、普通指令:应用 程序 运行) OS:operating system(操作系统):一种软件 程序 ,其作用如下:
译者:谢作翰 | 连玉君 | (知乎 | 简书 | 码云) 原文链接:Princeton Stata 在线课程 (Princeton University - Stata Tutorial ) Stata 现场培训报名中