楼主: 维兹
3174 7

sas中命名类似的文件的批量处理 [推广有奖]

  • 7关注
  • 0粉丝

硕士生

46%

还不是VIP/贵宾

-

威望
0
论坛币
482 个
通用积分
0.1271
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
2252 点
帖子
121
精华
0
在线时间
114 小时
注册时间
2014-7-6
最后登录
2018-12-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好我刚接触sas ,在做些数据预处理的工作,想请教一下

我把文件命名为member_01,member_02……member_99的CSV导入到work逻辑库以后(已完成),想要对所有的表格进行两个操作,一:保存主要变量var1,var2,……var7   二,将var3的值缺失的行删除   操作结束后保存为新表membernew_01……membernew_99.


请问怎么做?
谢谢
二维码

扫码加我 拉你入群

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

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

关键词:批量处理 Member 数据预处理 Work Ber 命名

回帖推荐

舍身卫道 发表于4楼  查看完整内容

data test_1; do i=1 to 99; if i
沙发
luoyexu@126.com 在职认证  发表于 2015-5-24 17:02:17 |只看作者 |坛友微信交流群
很简单啊   data  your_table;
                modify yout_table;
rename %do i=1 %to #
            var&i.=membernew_&i
          %end;;
run;

使用道具

藤椅
维兹 发表于 2015-5-24 18:34:36 |只看作者 |坛友微信交流群
luoyexu@126.com 发表于 2015-5-24 17:02
很简单啊   data  your_table;
                modify yout_table;
rename %do i=1 %to #
谢谢
好像有点问题。感觉你给的代码是对变量进行了重命名。
我要做的是,把每一张表格里的某几个变量所在列保存下来,需要在99张表格里面进行同样的操作,感觉主要是修改那一步应该进行循环
麻烦你再帮忙看一下 谢谢

使用道具

板凳
舍身卫道 发表于 2015-5-24 18:53:10 |只看作者 |坛友微信交流群
data test_1;
do i=1 to 99;
if i<10 then n=compress("0"||i);
else n=compress(i);
output;
end;
keep n;
run;

data _null_;
set test_1;
call symput(compress("F_name"||(_n_)),compress(n));
if last then call symput("sum",compress(_N_));
run;


%MACRO FREQ();
%DO I=1 %TO 99;
DATA membernew_&&F_name&I..;
SET member_&&F_name&I..(KEEP=VAR1-VAR7);
IF VAR3=. THEN DELETE;
RUN;
%END;
%MEND;
RUN;

使用道具

报纸
舍身卫道 发表于 2015-5-24 18:54:12 |只看作者 |坛友微信交流群
上面的第二个程序 改成这样
data _null_;
set test_1 end=last;
call symput(compress("F_name"||(_n_)),compress(n));
if last then call symput("sum",compress(_N_));
run;

使用道具

地板
维兹 发表于 2015-5-24 19:50:39 |只看作者 |坛友微信交流群
舍身卫道 发表于 2015-5-24 18:53
data test_1;
do i=1 to 99;
if i
你好  谢谢你的解答
我刚才看了一下感觉应该是对的 但是很多地方仍然不太明白,准备之后再研究。

问一下。我需要在你的macro freq()中输入什么参数呀 因为我直接运行是没有成功的

使用道具

7
维兹 发表于 2015-5-24 19:58:06 |只看作者 |坛友微信交流群
舍身卫道 发表于 2015-5-24 18:54
上面的第二个程序 改成这样
data _null_;
set test_1 end=last;
最看不懂的是compress的用法。。百度也没有找到类似的T T

使用道具

8
维兹 发表于 2015-5-24 20:31:43 |只看作者 |坛友微信交流群
舍身卫道 发表于 2015-5-24 18:54
上面的第二个程序 改成这样
data _null_;
set test_1 end=last;
重新运行过了 可以了 谢谢~~

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 19:01