全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
9281 5
2014-04-02
悬赏 10 个论坛币 已解决



如图,有filenames表两列:tmp为现在的表名,memname为目标表名,
把这个库里面的tmp1,tmp2,tmp3……tmp9 批量的修改为对应的memname的表名,不要.xls这个符号,很有规律,如何实现呢? 谢谢。
图片.PNG

原图尺寸 42.85 KB

如图

如图

二维码

扫码加我 拉你入群

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

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

全部回复
2014-4-2 11:48:49
复制代码
二维码

扫码加我 拉你入群

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

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

2014-4-2 12:40:29
yongyitian 发表于 2014-4-2 12:22
把上述文件名的中文变为英文/拼音后,运行:

174  data _null_;
175       set filenames;
176       newname= scan(rename, 1);
177       call execute('Proc Datasets Lib=work;');
178       call execute(catx(' ', "change", tmp, "=", newname, ";" , "quit;"));
179  run;

NOTE: 数值已转换为字符值,位置:(行:列)。
      176:20
NOTE: 变量 rename 未初始化。
NOTE: 从数据集 WORK.FILENAMES. 读取了 10 个观测
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒


NOTE: CALL EXECUTE 生成了代码行。
1   + Proc Datasets Lib=work;
NOTE: CALL EXECUTE 例程生成的行。
2   + change tmp1 = ; quit;
                    -
                    22
NOTE: 输入 RUN; 继续,或输入 QUIT; 结束过程。

ERROR 22-322: 期望: 名称.

NOTE: 由于上述错误,没有处理语句。
NOTE: 由于出错,SAS 系统停止处理该步。
NOTE: “PROCEDURE DATASETS”所用时间(总处理时间):
      实际时间          0.15 秒
      CPU 时间          0.03 秒
二维码

扫码加我 拉你入群

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

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

2014-4-2 13:46:34
yongyitian 发表于 2014-4-2 11:48
相当好
二维码

扫码加我 拉你入群

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

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

2014-4-2 13:50:54
options mprint mlogic;
%macro rename();
data _null_;
        set filenames end=eof;
        call symput("chg_nm"||trim(left(_n_)),tmp||"="||memname);
        if eof then call symput("n",_n_);
run;
%do i=1 %to &n.;
proc datasets library=work memtype=data nolist;
change &chg_nm.;
run;
%end;
%mend;

%rename();
二维码

扫码加我 拉你入群

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

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

2014-4-2 14:03:43
复制代码
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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