h*******d 发帖数: 272 | 1 新手求教 在线等
想破脑袋弄了大半天也没搞明白 我把问题简化再简化如下:
customer item
a bacon
a apple
b bacon
c cream
c apple
c bacon
等等
我想得出的转化结果是
bacon apple cream
a 1 1 0
b 1 0 0
c 1 1 1
等等
求教大家 指点 哪怕某个语句您觉得可能有帮助 就给我提示一下吧 谢谢
(目前我想到的是 可以用FIRST.CUSTOMER LAST.CUSTOMER 但customer 所占的行数
不一样 麻烦) |
w*********y 发帖数: 7895 | 2 我记得SAS ONLINE TUTOR里面有说到这种情况,
说了几种方法转换,你说的是一种。但问题是你无法预测
CUSTOMER的所有选择,所以有些缺陷。可是我
也记不住怎么写了。 你可以看看SQL的部分(第一个SECTION),
也许可以找到答案。
【在 h*******d 的大作中提到】 : 新手求教 在线等 : 想破脑袋弄了大半天也没搞明白 我把问题简化再简化如下: : customer item : a bacon : a apple : b bacon : c cream : c apple : c bacon : 等等
|
c**d 发帖数: 104 | 3 这个属于reshape data
1)PROC transpose
2) using array in data step. |
f*******e 发帖数: 51 | 4 data test;
input customer $ item $;
datalines;
a bacon
a apple
b bacon
c cream
c apple
c bacon
;
run;
data test;
set test;
num=1;
run;
proc transpose data=test out=test1(drop=_name_);
by customer;
var num;
id item;
run;
data test1;
set test1;
array num _numeric_;
do over num;
if num=. then num=0;
end;
run;
【在 h*******d 的大作中提到】 : 新手求教 在线等 : 想破脑袋弄了大半天也没搞明白 我把问题简化再简化如下: : customer item : a bacon : a apple : b bacon : c cream : c apple : c bacon : 等等
|
A*******s 发帖数: 3942 | 5 这种操作有专门的术语么?
我经常做这种数据操作
或者把多行的信息合并到一行
或者反过来,把一行的信息展开成多行
但是在interview的时候不知道该怎么简单描述这些操作。
【在 c**d 的大作中提到】 : 这个属于reshape data : 1)PROC transpose : 2) using array in data step.
|