全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1393 5
2014-03-07
悬赏 30 个论坛币 已解决
I want to every panel data from my pooling data,
How to use last.variable and define group number?
pls help me thanks!
----------------------------------------
pooling.txt
dept       date             retx   
10000 19860228       -0.257143
10000 19860331        0.365385
10000 19860430       -0.098592
10000 19860530       -0.222656
10000 19860630       -0.005025
10000 19860731       -0.080808
10001 19860228       -0.615385
10001 19860331       -0.057143
10001 19861031       -0.242424
10001 19861128        0.060000
10001 19861231       -0.377358
10001 19870130       -0.212121
10003 19860228        0.000000
10003 19860331       -0.384615
10003 19860430       -0.062500
10003 19860529       -0.066667
10004 19860228        0.020408
10004 19860331        0.010000
----------------------------------------
I hope results
panel01.xls:
dept       date             retx   
10000 19860228       -0.257143
10000 19860331        0.365385
10000 19860430       -0.098592
10000 19860530       -0.222656
10000 19860630       -0.005025
10000 19860731       -0.080808
panel02.xls:
dept       date             retx
10001 19860228       -0.615385
10001 19860331       -0.057143
10001 19861031       -0.242424
10001 19861128        0.060000
10001 19861231       -0.377358
10001 19870130       -0.212121
panel03.xls:
dept           date                            retx
10003 19860228        0.000000
10003 19860331       -0.384615
10003 19860430       -0.062500
panel04.xls:
dept       date             retx   
10004 19860228        0.020408
10004 19860331        0.010000

*my sas code*:
% MACRO no;
DATA tempfile&no(KEEP=dept date retx);
SET pooling;
BY dept
IF last.dept=1 Then DO;
PROC EXPORT DATA= tempfile&no
OUTFILE="C:\temp\panel&no..csv"
DBMS=CSV
REPLACE;
RUN;
%MEND no;

最佳答案

intheangel 查看完整内容

data pooling; input dept date retx; cards; 10000 19860228 -0.257143 10000 19860331 0.365385 10000 19860430 -0.098592 10000 19860530 -0.222656 10000 19860630 -0.005025 10000 19860731 -0.080808 10001 19860228 -0.615385 10001 19860331 -0.057143 10001 19861031 -0.242424 10001 19861128 0.060000 10001 19861231 -0. ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-3-7 16:34:58
data pooling;
input dept date retx;
cards;
10000 19860228       -0.257143
10000 19860331        0.365385
10000 19860430       -0.098592
10000 19860530       -0.222656
10000 19860630       -0.005025
10000 19860731       -0.080808
10001 19860228       -0.615385
10001 19860331       -0.057143
10001 19861031       -0.242424
10001 19861128        0.060000
10001 19861231       -0.377358
10001 19870130       -0.212121
10003 19860228        0.000000
10003 19860331       -0.384615
10003 19860430       -0.062500
10003 19860529       -0.066667
10004 19860228        0.020408
10004 19860331        0.010000
;
run;

%macro no(x);
data a;
set pooling;
if dept=&x;

proc export data=a
OUTFILE="d:\panel%str(&x).csv"
DBMS=CSV
REPLACE;
run;
%mend no;
%no(10000);
%no(10001);
%no(10003);
%no(10004);
二维码

扫码加我 拉你入群

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

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

2014-3-8 10:58:24
data pooling;
input dept $ date retx;
cards;
10000 19860228       -0.257143
10000 19860331        0.365385
10000 19860430       -0.098592
10000 19860530       -0.222656
10000 19860630       -0.005025
10000 19860731       -0.080808
10001 19860228       -0.615385
10001 19860331       -0.057143
10001 19861031       -0.242424
10001 19861128        0.060000
10001 19861231       -0.377358
10001 19870130       -0.212121
10003 19860228        0.000000
10003 19860331       -0.384615
10003 19860430       -0.062500
10003 19860529       -0.066667
10004 19860228        0.020408
10004 19860331        0.010000
;
run;

proc sort;
by dept;
run;
data tmp;
set pooling;
by dept;
if last.dept;
a='%no(';
c=")";
file "d:\tmp.txt";
put a $ dept $ c $;
run;

%macro no(x);
data a;
set pooling;
if dept=&x;

proc export data=a
OUTFILE="d:\panel%str(&x).csv"
DBMS=CSV
REPLACE;
run;
%mend no;
%include "d:\tmp.txt";
二维码

扫码加我 拉你入群

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

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

2014-3-8 22:36:08
intheangel 发表于 2014-3-8 10:58
data pooling;
input dept $ date retx;
cards;
Thank for your help !
Can your solve my another problem :
about how to format DATE :
yyyymmdd(date)---->yyyymm(month)
----------------------------------------------
data pooling;
infile 'c:\orignal.txt';
input dept $ date date yymmddn8. retx;
format date yymn6.;
run;
proc sort;
by dept;
run;
data tmp;
set pooling;
by dept;
if last.dept;
a='%no(';
c=")";
file "d:\tmp.txt";
put a $ dept $ c $;
run;
%macro no(x);
data a(rename=(month=date));
set pooling;
if dept=&x;
proc export data=a
OUTFILE="d:\panel%str(&x).csv"
DBMS=CSV
REPLACE;
run;
%mend no;
%include "d:\tmp.txt";
----------------------------------------
*the your outcomes:panel10004.csv*
  dept    date             retx
10004  19860228        0.020408
10004  19860331        0.010000
-------------------------------------------------
*I hope outcomes: panel10004.csv *
  dept    month           retx
10004   198602        0.020408
10004   198603        0.010000
Are you  intrest about my another problem ? Good  luck !
https://bbs.pinggu.org/thread-2926763-1-1.html
二维码

扫码加我 拉你入群

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

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

2014-3-9 08:45:35
data pooling;
input dept $ date yymmdd8. retx;
cards;
10000 19860228       -0.257143
10000 19860331        0.365385
10000 19860430       -0.098592
10000 19860530       -0.222656
10000 19860630       -0.005025
10000 19860731       -0.080808
10001 19860228       -0.615385
10001 19860331       -0.057143
10001 19861031       -0.242424
10001 19861128        0.060000
10001 19861231       -0.377358
10001 19870130       -0.212121
10003 19860228        0.000000
10003 19860331       -0.384615
10003 19860430       -0.062500
10003 19860529       -0.066667
10004 19860228        0.020408
10004 19860331        0.010000
;
run;

proc sort;
by dept;
run;
data tmp;
set pooling;
by dept;
if last.dept;
a='%no(';
c=")";
file "d:\tmp.txt";
put a $ dept $ c $;
run;

%macro no(x);
data a;
set pooling;
format date yymon32.;
if dept=&x;

proc export data=a
OUTFILE="d:\panel%str(&x).csv"
DBMS=CSV
REPLACE;
run;
%mend no;
%include "d:\tmp.txt";





这样可以么?我只会这样输出年月了
二维码

扫码加我 拉你入群

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

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

2014-3-9 12:20:41
Thanks ! Good Luck !
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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