楼主: 3qsir
1414 5

求助 :Pooling data export to panel data [推广有奖]

  • 2关注
  • 1粉丝

副教授

52%

还不是VIP/贵宾

-

威望
0
论坛币
13606 个
通用积分
27.0809
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
71836 点
帖子
367
精华
0
在线时间
931 小时
注册时间
2011-5-18
最后登录
2021-3-6

楼主
3qsir 发表于 2014-3-7 16:34:57 |AI写论文
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. ...
关键词:panel data Pooling export Panel xport single about export number

沙发
intheangel 学生认证  发表于 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);
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

藤椅
intheangel 学生认证  发表于 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";
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
3qsir + 5 + 5 + 5 热心帮助其他会员
admin_kefu + 50 热心帮助其他会员

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

我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

板凳
3qsir 发表于 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

报纸
intheangel 学生认证  发表于 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";





这样可以么?我只会这样输出年月了
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
3qsir + 5 + 5 + 5 好的意见建议

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

地板
3qsir 发表于 2014-3-9 12:20:41
Thanks ! Good Luck !

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

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