楼主: 乾坤神龙
6563 8

关于改变变量顺序 [推广有奖]

  • 8关注
  • 1粉丝

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
4 点
热心指数
9 点
信用等级
5 点
经验
2341 点
帖子
78
精华
0
在线时间
196 小时
注册时间
2010-6-2
最后登录
2023-9-6

楼主
乾坤神龙 发表于 2012-5-16 15:55:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位老大好,最近有个关于改变变量顺序的问题,出现了一个很奇怪的问题,麻烦大家看一下;
data a;
var1=1;
var2=1;
var3=1;
var4=1;
var5=1;
var6=1;
var7=1;
var8=1;
var9=1;
var10=1;
var11=1;
run;
data a1;
retain var1 var3--var11 var2;
set a;
run;
我想要将变量var2成为最后一个变量,使用这种方法,结果出现了如下log:
14   data a1;
15   retain var1 var3--var11 var2;
ERROR: Variable var3 cannot be found on the list of previously defined variables.
16   set a;
17   run;
提示我变量var3不存在,实在搞不懂,不清楚为什么会出现这种情况!!!
二维码

扫码加我 拉你入群

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

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

关键词:previously Variables Variable previous Defined 东西湖 武汉 胎儿 孝感 孕妇

沙发
空气骑士 发表于 2012-5-16 16:36:53
不知道为什么会出这个问题,不过貌似把 var3--var11 改成 var3-var11就OK了。。。

藤椅
乾坤神龙 发表于 2012-5-16 16:57:51
空气骑士 发表于 2012-5-16 16:36
不知道为什么会出这个问题,不过貌似把 var3--var11 改成 var3-var11就OK了。。。
我是为了举例方便才把变量名取得有规律,实际上是没有规律的,只能使用--这种方式,很奇怪会出现这种问题

板凳
空气骑士 发表于 2012-5-16 17:13:47
没规律的话你一个一个列出来啊,retain这样写是没问题的,应该是 'var3--var1'这种写法的问题吧。。。

报纸
jacky1842 发表于 2012-5-16 22:22:29
是 'var3--var1'这种写法错误,应该使用“-”

地板
乾坤神龙 发表于 2012-5-17 10:00:26
空气骑士 发表于 2012-5-16 17:13
没规律的话你一个一个列出来啊,retain这样写是没问题的,应该是 'var3--var1'这种写法的问题吧。。。
在SAS里面如果一个一个的列出的话,对于变量个数其实是有限制的,超出多少个字符之后,sas无法处理,只能拆分,所以想有什么简单的方法,至于var3--var11的事情,理论上应该这么写 ,就是这个错误提示很奇怪,不清楚为什么会这样!!

7
乾坤神龙 发表于 2012-5-17 10:01:44
jacky1842 发表于 2012-5-16 22:22
是 'var3--var1'这种写法错误,应该使用“-”
如果变量前缀一样,使用“-”是可以的,但是实际操作中,变量命名不可能这么有规律,只能使用“--”,只是错误提示很奇怪!!

8
zhangzachary 发表于 2012-5-17 16:16:57
这个是行不通的,因为 varA--varZ 用于按顺序选取varA到varZ的所有变量,而data a1的retain statement时,a1里是没有variable的,所以是你手动一个个输入变量名,使用 -- 是应该在set 之后或者定义好变量之后。
要改变顺序就要具体情况具体分析了,比如想把var2放到最后,可以先drop var2, 然后再set 之后定义var2再合并dataset。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

9
乾坤神龙 发表于 2012-5-17 16:22:00
zhangzachary 发表于 2012-5-17 16:16
这个是行不通的,因为 varA--varZ 用于按顺序选取varA到varZ的所有变量,而data a1的retain statement时,a ...
好的,暂时想明白了,原来是retain 时变量还不存在的原因,谢了!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-4 12:09