楼主: vincent829
12108 29

命令太长怎么办 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
515 个
通用积分
0.1673
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1736 点
帖子
99
精华
0
在线时间
108 小时
注册时间
2005-10-6
最后登录
2013-9-25

楼主
vincent829 发表于 2009-6-30 13:01:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我从数据库把一整个文件都导入了Stata,然后我只需要一部分作为我的样本
我用的命令是Keep if id==1|id==6|id==8|id==10|....
由于有将近1000个样本,我一一输入,最后执行命令的时候出现 too many literals的字样
不知道如何解决,谢谢大家
二维码

扫码加我 拉你入群

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

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

关键词:怎么办 Stata tata ITER keep 命令

回帖推荐

voodoo 发表于16楼  查看完整内容

14楼太麻烦了点,用蓝色的建议: gen sample = 1 if id == 1| id == 3 | id == 6| id == 8 ... replace sample = 1 if ...... ...... replace sample = 1 if id == 1000 | id == 1003 | id == 1006 ... keep if sample == 1 drop sample

voodoo 发表于14楼  查看完整内容

分成几个命令写不就结了 [/quote] 我help limits,发现# characters in a command在Stata SE 10.1 中可长达1,081,527,所以我想应该不是命令太长的问题,而可能是由 # of dyadic operators in an expression(max 800 for SE) 或 # of numeric literals in an expression(max 300 for SE)导致。 既然命令已经写好了,那就将原命令分成若干段,多用几次keep if ... 不就得了。 keep if id == 1| id == 3 | id == 6| id = ...

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

采用变通的方法 gen sample=. replace sample =1 if id==1 replace sample =1 if id==6 replace sample =1 if id==8 ... ... keep if sample==1

sungmoo 发表于10楼  查看完整内容

#d; …… …… ……; #d cr *仅限于.do或.ado里

voodoo 发表于9楼  查看完整内容

分成几个命令写不就结了 [/quote] 我help limits,发现# characters in a command在Stata SE 10.1 中可长达1,081,527,所以我想应该不是命令太长的问题,而可能是由 # of dyadic operators in an expression(max 800 for SE) 或 # of numeric literals in an expression(max 300 for SE)导致。 既然命令已经写好了,那就将原命令分成若干段,多用几次keep if ... 不就得了。 keep if id == 1| id == 3 | id == 6| id = ...

本帖被以下文库推荐

沙发
eblog 发表于 2009-6-30 13:12:59
建议使用inlist()函数

藤椅
蓝色 发表于 2009-6-30 14:01:12
如果你的id没有规律只能那样写了

板凳
vincent829 发表于 2009-6-30 14:16:14
3# 蓝色
我看了Stata,最多只能有255层的关系,但是我有将近1000个id,也就是要用1000次"或",我已经一个个输入了,命令执行不了

报纸
vincent829 发表于 2009-6-30 14:19:11
2# eblog
我看了命令的解释,arguments最多255。能否详解一下?谢谢

地板
eblog 发表于 2009-6-30 14:52:23
vincent829 发表于 2009-6-30 14:19
2# eblog
我看了命令的解释,arguments最多255。能否详解一下?谢谢
分成几个命令写不就结了

7
蓝色 发表于 2009-6-30 14:53:15
采用变通的方法
gen sample=.
replace sample =1 if  id==1
replace sample =1 if  id==6
replace sample =1 if  id==8

...
...
keep if sample==1

8
蓝色 发表于 2009-6-30 14:53:37
stata对行数没有限制吧

9
voodoo 发表于 2009-6-30 16:43:15
eblog 发表于 2009-6-30 14:52
vincent829 发表于 2009-6-30 14:19
2# eblog
我看了命令的解释,arguments最多255。能否详解一下?谢谢
分成几个命令写不就结了
我help limits,发现# characters in a command在Stata SE 10.1 中可长达1,081,527,所以我想应该不是命令太长的问题,而可能是由  # of dyadic operators in an expression(max 800 for SE) 或 # of numeric literals in an expression(max 300 for SE)导致。
既然命令已经写好了,那就将原命令分成若干段,多用几次keep if ... 不就得了。

keep if id == 1| id == 3 | id == 6| id == 8 ...
...
keep if id == 1000 | id == 1003 | id == 1006 ...
巫毒上传,必属佳品!
坛友下载,三思后行!

10
sungmoo 发表于 2009-6-30 16:50:14
#d;
……
……
……;
#d cr

*仅限于.do或.ado里

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

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