楼主: ertyuj
5159 2

如何把SAS生成的多个数据输出文件存入一个到一个EXCEL文件之内的不同区域? [推广有奖]

  • 0关注
  • 1粉丝

已卖:7份资源

硕士生

40%

还不是VIP/贵宾

-

威望
0
论坛币
254 个
通用积分
0.7615
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
-351 点
帖子
136
精华
0
在线时间
164 小时
注册时间
2007-2-7
最后登录
2022-3-17

楼主
ertyuj 发表于 2013-1-18 11:55:45 |AI写论文
10论坛币
我有一个简单的数据文件(KIDS),除了其他变量,这个文件包括性别(SEX),家庭类别(FAMID),和年龄。程序如下:

DATA kids;
        LENGTH kidname $ 4 sex $ 1;
        INPUT famid kidname birth age wt sex ;
        CARDS;
1 Beth 1  9  60  f
1 Bob  2  6  40  m
1 Barb 3  3  20  f
2 Andy 1  8  80  m
2 Al   2  6  50  m
2 Ann  3  2  20  f
3 Pete 1  6  60  m
3 Pam  2  4  40  f
3 Phil 3  2  20  m
;
RUN;

使用PROC MEANS,我把每个按照性别进行分组的平均年龄输出到BYSEX这个数据文件。
程序如下:

PROC MEANS DATA=kids ;
        CLASS sex;
        VAR age;
        OUTPUT OUT=bysex MEAN= ;
RUN;

使用PROC MEANS,把按照家庭类别进行分组的平均年龄输出到BYFAMID这个数据文件。
程序如下:

PROC MEANS DATA=kids ;
        CLASS famid;
        VAR age;
        OUTPUT OUT=byfamid MEAN= ;
RUN;

最后我需要一个EXCEL文件,用于盛放BYSEX文件和BYFAMID文件的所有信息,比方说,这个最后生成的EXCEL文件第1-10行用于存放来自BYSEX文件的信息,10-20行保留成为空白的行,20-30行用于存放来自BYFAMID文件的信息。效果如下:

sex        _TYPE_        _FREQ_        age
            0                 9                  5.1111111111
f           1                 4                  4.5
m         1                 5                  5.6




famid        _TYPE_        _FREQ_        age
               0                 9                  5.1111111111
1             1                 3                  6
2             1                 3                  5.3333333333
3             1                 3                  4

我的问题是,如何把这些数据输出文件BYSEX文件,BYFAMID文件按照如上效果全部放入到一个EXCEL文件之内?事实上是,我需要把多个这样的独立文件(BYSEX,BYFAMID, 。。。 )放入到一个EXCEL文件之内。
欢迎提供程序,或者任何思路,都算有效答案,在下不胜感激。



最佳答案

webgu 查看完整内容

或者导入到同一文件的不同的SHEET.更容易实现。 proc export data=bysex outfile="yourfilepath" dbms=excel replace; sheet="bysex"; run; proc export data=byfamid outfile="yourfilepath" dbms=excel replace; sheet="byfamid"; run;
关键词:EXCEL xcel exce cel output EXCEL 如何
数据科学和机器学习博客:https://shorturl.at/jtHTW

沙发
webgu 发表于 2013-1-18 11:55:46
或者导入到同一文件的不同的SHEET.更容易实现。

proc export data=bysex
                    outfile="yourfilepath"
                                        dbms=excel replace;
                                        sheet="bysex";
run;

proc export data=byfamid
                    outfile="yourfilepath"
                                        dbms=excel replace;
                                        sheet="byfamid";
run;
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

藤椅
bobguy 发表于 2013-1-19 08:01:41
You can use DDE "dynamic data exchange". Here is an example.

filename test dde
   'excel|sheet1!r3c3:r13c6';


data _null_;
   file test;
   array p(*) p1-p10;
   do i=1 to 5;
      do j=1 to dim(p);
                p(j)=j;
          end;
        put p1 p1 p3;
        end;
        drop i j;
run;

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

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