楼主: moffyjiang
6036 2

[编程问题求助] 关于STATA字符型变量的引用问题 [推广有奖]

  • 0关注
  • 1粉丝

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
37 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
802 点
帖子
6
精华
0
在线时间
70 小时
注册时间
2011-9-6
最后登录
2017-3-3

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
今天练习的时候想到了两个奇怪的问题。
1.假设我有一个字符型变量a(只有一个值,假设是merge),然后我想要创建一个新的变量,这个变量的名字为字符型变量a的取值,请问这种情况怎么实现?context是在一个循环语句中a的取值每步都要变,而每步循环我都想创建一个新的变量名为a的取值。

2.对于变量名申明为something+数字形式的批量申明为什么只有forvalues的步骤变量可以申明?比如下面两个
  a)     forvalues i=1/5 {
                                    gen v`i'=1
                                   }

  b)     scalar a=1
          forvalues i=1/5 {
                                    gen v`a'=1
                                    scalar a=a+1
                                   }
  这里面 a)就能生成v1-v5五个变量,但是b)就不行……请问这是什么解释?原因是出在标量a用单引号引用无意义吗?
stata菜鸟,应老板要求上班前狂补stata……老板的论文纯用stata做的我又不可能让他换sas或者R,就只好苦逼地现学……求指教
二维码

扫码加我 拉你入群

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

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

关键词:Stata 字符型变量 tata 字符型 forvalues

沙发
夏目贵志 发表于 2015-9-20 04:47:51 |只看作者 |坛友微信交流群
关于第一个问题
clear
set obs 2
gen names="name1" in 1
replace names="name2" in 2
forvalues i=1/2 {
    local name=names[`i']
    gen `name'=0
}

关于第二个问题。很简单,scalar不能如此使用。Stata语言的设计就是如此。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
moffyjiang + 1 + 1 + 1 谢谢!
hustchen2012 + 10 + 10 + 1 + 1 + 1 热心帮助其他会员

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

使用道具

藤椅
moffyjiang 发表于 2015-9-21 02:42:23 |只看作者 |坛友微信交流群
夏目贵志 发表于 2015-9-20 04:47
关于第一个问题
clear
set obs 2
懂了!谢谢!

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 15:17