楼主: Bontique
2726 4

rename vara=_vara;报错WARNING: Variable vara already exists on file X. 为什么? [推广有奖]

  • 0关注
  • 1粉丝

已卖:86份资源

本科生

69%

还不是VIP/贵宾

-

威望
0
论坛币
1601 个
通用积分
79.9543
学术水平
1 点
热心指数
8 点
信用等级
0 点
经验
3481 点
帖子
70
精华
0
在线时间
56 小时
注册时间
2012-3-30
最后登录
2022-2-14

楼主
Bontique 发表于 2015-6-10 14:56:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data new;
  set old;

rename vara=_vara;
vara=input(_vara, best.);

run;


为什么sas会报错如下:

NOTE: Variable _vara is uninitialized.
WARNING: Variable _vara already exists on file new.

我非常确认data set new里没有_vara这个变量。

如果不想用set old (rename=(vara=_vara)); 有没有更好得方法可以解决这个问题?




二维码

扫码加我 拉你入群

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

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

关键词:Variable warning Already rename exist about already file

沙发
sas那个石家庄人 发表于 2015-6-10 16:33:45
http://support.sas.com/documentation/cdl/en/lestmtsref/67407/HTML/default/viewer.htm#n0x16kvqkxxdx5n1t04voifvo8wo.htm

你错误出现的原因可以参考官方的support

The new variable names are written to the output data set only. Use the old variable names in programming statements for the current DATA step. RENAME applies to all output data sets.

新的变量名字_vara只会被导出到生成的数据集里, 要在中间的statement里用到这个变量还是得reference原来的老名字。


这样看来还是用set old (rename=(vara=_vara)); 更好。因为你改了名字,在下面的语句中就能立马使用。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

藤椅
WUPUQU 发表于 2015-6-10 20:08:10
因为你这里的rename vara=_vara;语句只有在run的最后才会生效
所以你的程序其实就是直接vara=input(_vara, best.);而_vara此刻是不存在的,肯定出错
想用回原来的varname,肯定是要rename的。不放在set语句里就要放在data new (rename=···)
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

板凳
Bontique 发表于 2015-6-15 10:11:10
WUPUQU 发表于 2015-6-10 20:08
因为你这里的rename vara=_vara;语句只有在run的最后才会生效
所以你的程序其实就是直接vara=input(_vara, ...
谢谢!

报纸
Bontique 发表于 2015-6-15 10:11:57
sas那个石家庄人 发表于 2015-6-10 16:33
http://support.sas.com/documentation/cdl/en/lestmtsref/67407/HTML/default/viewer.htm#n0x16kvqkxxdx5n ...
谢谢!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 10:59