作者kingbee ( 将心比心)
站内Statistics
标题Re: [问题] SAS资料处理
时间Tue Jun 16 09:08:32 2009
我只想到变通的方法
若单一ID 单一年份 有很多地点和物品时 需要靠MARCO来写
但我只把我想法写出来 自己在去修改MARCO吧
data king ;
input id$ year$ local$ item$ cost;
cards ;
101 1999 台北 蚵仔面线 40
101 1999 台南 棺材板 50
101 1999 淡水 阿给 30
101 2000 日本 拉面 100
102 1999 美浓 纸伞 150
102 1999 台北 牛肉面 100
103 2000 美国 汉堡 200
103 2008 美国 披萨 300
;
proc sort data=king ; by id year local ;
proc transpose data=king out=ts1;
by id year;
var local item cost;
run;
data t1;
set ts1;
keep id year col1 ;
run;
proc sort data=t1 ; by id year;
proc transpose data=t1 out=f1 PREFIX=var1;
by id year;
var col1;
run;
data t2;
set ts1;
keep id year col2 ;
run;
proc sort data=t2 ; by id year;
proc transpose data=t2 out=f2 PREFIX=var2;
by id year;
var col2;
run;
data t3;
set ts1;
keep id year col3 ;
run;
proc sort data=t3 ; by id year;
proc transpose data=t3 out=f3 PREFIX=var3;
by id year;
var col3;
run;
proc sort data=f1 ; by id year;
proc sort data=f2 ; by id year;
proc sort data=f3 ; by id year;
data king2;
merge f1 f2 f3 ; by id year;
drop _NAME_;
run;
若有其他人有更好的方法也请帮忙了
※ 引述《a15321 (a15321)》之铭言:
: 有个SAS问题卡关多日,想请教板上前辈
: 我有一笔资料是长这样 (举例)
: ID 年份 地点 物品 金额
: ==============================================
: 101 1999 台北 蚵仔面线 40
: 101 1999 台南 棺材板 50
: 101 1999 淡水 阿给 30
: 101 2000 日本 拉面 100
: 102 1999 美浓 纸伞 150
: 102 1999 台北 牛肉面 100
: 103 2000 美国 汉堡 200
: 103 2008 美国 披萨 300
: 希望能弄成以下结果
: ID 年份 地点1 物品1 金额1 地点2 物品2 金额2 地点3 物品3 金额3
: =========================================================================
: 101 1999 台北 蚵仔面线 40 台南 棺材板 50 淡水 阿给 30
: 101 2000 日本 拉面 100 . . . . . .
: 102 1999 美浓 纸伞 150 台北 牛肉面 100 . . .
: 103 2000 美国 汉堡 200 . . . . . .
: 103 2008 美国 披萨 300 . . . . . .
: 原资料有上万笔
: 希望把所有 同ID且同年份 的项目合成一项
: 後面就把项目改成 地点1,物品1,金额1....直到 地点n,物品n,金额n
: 我试了几天,用PROC Transpose或PROC SQL都做不出来
: 请问这在SAS中有办法做吗? 请各位前辈指点一下,感激不尽!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.29.135.126
1F:→ liton:好奇问一下 06/16 22:56
2F:→ liton:台北 蚵仔面线 40<--> 台北 蚵仔面线 80 06/16 22:57
3F:→ liton:算同一笔? 06/16 22:57
4F:推 jwjeng:楼上是在哪看到台北蚵仔面线80? 06/16 23:21
5F:→ liton:需求访谈啊 先问清楚规则 写法不同啊 06/16 23:44
6F:→ kingbee:我有写错? 看不懂liton的问题? 06/17 09:30
7F:→ kingbee:台北 蚵仔面线 80 与 40 不同一项 所以会出现在物品4 06/17 09:37
8F:→ kingbee:只是我没写那麽多 其他就交给MARCO来处理了 06/17 09:38
9F:推 a15321:非常感谢! 我最後也是用类似方法硬做XD 06/19 15:55