楼主: 790646223
2235 8

怎样将数据转换格式后可以用于sas关联规则分析(在线等) [推广有奖]

  • 0关注
  • 0粉丝

本科生

7%

还不是VIP/贵宾

-

威望
0
论坛币
377 个
通用积分
1.8800
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1632 点
帖子
53
精华
0
在线时间
68 小时
注册时间
2010-4-20
最后登录
2020-12-25

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好,小弟不才问一个问题,怎样将一组数据转换为另一种格式,这样就可以在sas中做关联规则了。
原数据格式为:
id1 产品1 产品2 产品3
id2
1 1 1
id3 0 1 1
id4 1 0 0
转换后格式为
id1 产品1
id1 产品2
id1产品3
id2 产品2
id2 产品3
id3 产品1


二维码

扫码加我 拉你入群

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

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

关键词:数据转换 关联规则 在线等 数据格式 大家好 在线 产品

沙发
790646223 发表于 2015-8-9 21:31:42 来自手机 |只看作者 |坛友微信交流群
790646223 发表于 2015-8-9 21:22
大家好,小弟不才问一个问题,怎样将一组数据转换为另一种格式,这样就可以在sas中做关联规则了。
原数据格 ...
个人认为这个应该分两步做,第一步,将1变成对应的变量名,第二步,reshape  data

使用道具

藤椅
deem 学生认证  发表于 2015-8-9 21:45:23 |只看作者 |坛友微信交流群
用proc transpose

使用道具

板凳
790646223 发表于 2015-8-9 22:34:51 来自手机 |只看作者 |坛友微信交流群
deem 发表于 2015-8-9 21:45
用proc transpose
实例中产品有几百个,用transpose要写几百刚,有什么更好的方法吗?

使用道具

报纸
790646223 发表于 2015-8-9 23:42:35 来自手机 |只看作者 |坛友微信交流群
790646223 发表于 2015-8-9 22:34
实例中产品有几百个,用transpose要写几百刚,有什么更好的方法吗?
几百行

使用道具

地板
priss111 发表于 2015-8-10 08:56:19 |只看作者 |坛友微信交流群
  1. data aa;
  2.         input id $ p1 p2 p3;
  3. cards;
  4. id1 1 1 1
  5. id2 0 1 1
  6. id3 1 1 1
  7. id4 1 0 1
  8. ;
  9. proc print data=aa;
  10. run;

  11. data aa1;
  12.         set aa;

  13.         array p{3} p1 p2 p3;

  14.         do i= 1 to 3;
  15.                 pall=p{i};
  16.                 output;
  17.                 end;
  18.         run;

  19. data aa2(keep=id c pall);
  20.         set aa1;
  21.         format c $5.0;

  22.         if i=1 then c="产品1";
  23.         else if i=2 then c="产品2";
  24.         else if i=3 then c="产品3";

  25.         label id="编号"
  26.                   c="产品号"
  27.                   pall="产品数"
  28.                   ;
  29. run;
复制代码

使用道具

7
yangdelong1988 发表于 2015-8-13 16:59:55 |只看作者 |坛友微信交流群
data test;
input id:$8. product1:$8. product2:$8. product3:$8.;
cards;
id1 1 1 1
id2 0 1 1
id3 1 0 0
;
run;

option symbolgen;
%macro test_1;
data test;
set test;
%do i=1 %to 3;
if product&i.="1" then product&i.="产品&i.";
%end;
run;
%mend;
%test_1;

proc transpose data=test out=test_1(drop=_name_) prefix=product_;
var product1-product3;
by id;
run;

data test_1;set test_1;if product_1='0' then delete;run;

使用道具

8
790646223 发表于 2015-8-15 18:55:42 |只看作者 |坛友微信交流群
yangdelong1988 发表于 2015-8-13 16:59
data test;
input id:$8. product1:$8. product2:$8. product3:$8.;
cards;
十分感谢你,最近看到sas有一个例子,问题已经顺利解决,这个例子是这样的,贴出来大家一起学习

使用道具

9
790646223 发表于 2015-8-15 18:56:44 |只看作者 |坛友微信交流群
790646223 发表于 2015-8-15 18:55
十分感谢你,最近看到sas有一个例子,问题已经顺利解决,这个例子是这样的,贴出来大家一起学习
十分感谢你,最近看到sas有一个例子,问题已经顺利解决,这个例子是这样的,贴出来大家一起学习
EM Help中有个例子,可以用的,根据这个例子调整下自己的数据吧
注意项目
/*
CUSTOMER:  ID role
PRODUCT:  target role
TIME:  rejected role.
In the Data Source Wizard — Data Source Attributes window, change the data source role from Raw to Transaction.
*/

libname assocs "e:\temp";
DATA assocs.test2;
     input customer time item1 item2 item3 item4;
     datalines;
     1 1 herring corned_b olives .
     1 2 ham turkey bourbon ice_cream
     2 1 baquette soda . .
     2 2 herring cracker heineken olives
     2 3 corned_b . . .
     3 1 avocado cracker artichok heineken
     3 2 ham turkey sardines .
     ;
run;
PROC TRANSPOSE
   data=assocs.test2
   out=assocs.seq2(rename=(col1=product)
   drop=_name_
   where=(product is not missing));
   var item1-item4;
   by customer time;
run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-12 22:42