全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
7133 11
2017-08-07
悬赏 30 个论坛币 未解决
我有一百列数据,变量名没有规则(从wind导入的,股票代码不是连续的),想把变量名统一改成a1 a2 ... a100,这要如何做到啊
二维码

扫码加我 拉你入群

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

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

全部回复
2017-8-7 12:15:12
手头没SAS,空想了一个办法供一试。大概思路是,用array建一百个新变量,命名为a1-a100,将旧变量的值赋给新变量,然后删掉旧变量。因为可以用array和--一次选取多个名字之间没有联系,但是位置连在一起的变量,所以整个程序并不会太长。如果有错误信息显示a1-a100不存在,可在Data 和 set 步骤之间先用length a1-a100 100.(用旧变量的长度,100是我瞎编的); 提前建立新变量。

data outcome;
set yourdata;
array old{100} oldvar1--oldvar100;
array new{100} a1-a100;
do i = 1 to 100;
  new[i]=old[i];
end;
delete oldvar1--oldvar100;
drop i;
run;
二维码

扫码加我 拉你入群

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

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

2017-8-7 13:53:05
wulawula_8523 发表于 2017-8-7 12:15
手头没SAS,空想了一个办法供一试。大概思路是,用array建一百个新变量,命名为a1-a100,将旧变量的值赋给新 ...
旧变量没有规则的,不是连续的什么col1-col100,是_00591_SZ这样的,这个方法行不通
二维码

扫码加我 拉你入群

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

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

2017-8-7 13:54:25
我自己试了一下可以通过transpose来实现,两次transpose后会自动生成COL1-COL100,这样就可以操作了
二维码

扫码加我 拉你入群

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

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

2017-8-7 21:04:42
用宏变量吧,做的可能画的时间少
二维码

扫码加我 拉你入群

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

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

2017-8-8 06:51:49
我专门研究过这问题 上代码

复制代码
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群