楼主: zydisney
5227 3

如何用sas循环将列合并 [推广有奖]

  • 0关注
  • 0粉丝

本科生

50%

还不是VIP/贵宾

-

威望
0
论坛币
38570 个
通用积分
0.5000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3887 点
帖子
51
精华
0
在线时间
122 小时
注册时间
2007-5-4
最后登录
2023-5-11

楼主
zydisney 发表于 2009-10-15 21:14:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
SAS 中使用
PROC APPEND BASE=a;
可以循环很多次把新生成的行加到原有的base数据文件,但是我现在想要循环很多次把新生成的列(每次新生成3列)加到原有的数据文件上,该怎么做呢?谢谢。
二维码

扫码加我 拉你入群

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

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

关键词:如何用 append 数据文件 Base ROC SAS

回帖推荐

jingju11 发表于2楼  查看完整内容

1# zydisney 如果可以确定顺序和原数据是一致的,使用 如果不确定,应使用by。

bobguy 发表于4楼  查看完整内容

There are many ways to do the job. It depends your real situation to evaluate which one is better. Proc append only appends one data set every time. If you really want to use it, you'd better to use SAS macros to repeat your sas codes. This is a case when you do some simulation jobs, etc.. Here is an example, option mprint will print all generated SAS code in logs. %macro loopit(n=10); p ...

本帖被以下文库推荐

沙发
jingju11 发表于 2009-10-15 22:06:25
1# zydisney

如果可以确定顺序和原数据是一致的,使用
  1. data _new;
  2. merge old new;
  3. /*no BY statement*/
  4. run;
复制代码

如果不确定,应使用by。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
zydisney 发表于 2009-10-15 23:23:32
受用了,谢谢楼上二位

板凳
bobguy 发表于 2009-10-16 09:46:40
There are many ways to do the job. It depends your real situation to evaluate which one is better.

Proc append only appends one data set every time. If you really want to use it, you'd better to use SAS macros to repeat your sas codes. This is a case when you do some simulation jobs, etc.. Here is an example,

option mprint will print all generated SAS code in logs.

%macro loopit(n=10);
proc datasets lib=work;
delete all;
quit;

%do i = 1 %to &n;
    data new;
          dsn=&i;
          do j = 1 to 5;
             x=ranuni(990);
                 output;
          end;
        run;
             
        proc append base=all data=new; run;

        %end;
%mend;
options mprint;
%loopit(n=3)


if one has many small data sets with the same attribution then
data all;
   set w1 w2 w3 w4 w5 w6;
run;

Hope this helps.
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
cengpengyu + 2 + 2 + 2 精彩帖子

总评分: 经验 + 3  论坛币 + 3  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 14:11