由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 一个sas问题
相关主题
如何将SAS DATA中的变量名改名(不知道原变量名的前提下)SAS problem ask for help!
[合集] 请教:SAS help请问如果用SAS 解决这个问题
sas 编程 - data manipulation一个SAS问题,合并行
help for a sas question很挑战的data transformation problem help
求教 SAS数据转化[合集] 如何用SAS把几个colume的值连接在一起
请教一个SAS问题再问一个sas输出的问题 (export)
SAS -proc transpose 急问!A R question
请教用SAS的一个数据处理的问题sort two same tables SQL but different results (转载)
相关话题的讨论汇总
话题: check话题: feature话题: data话题: newfeature话题: run
进入Statistics版参与讨论
1 (共1页)
l***o
发帖数: 5337
1
请教:我有一个dataset,只有两个var: id 和 feature,都是character。 id有很多
重复
的,但重复几遍不一定。我想把同id的feature都连起来写在一行,就像下面这样:
原 data:
ID Feature
a dfdfd
a ddf
a dde
b dlk
b lk
...
想要的data:
ID feature
a dfdfd-ddf-dde
b dlk-lk
...
请问怎么做?谢谢!
l*****8
发帖数: 483
2
proc sort data=aa;
by id;
run;
data bb;
length check $5500.;
set aa;
by id;
retain check;
if first.id then check='';
check =trim(check)||trim(feature)||'-';
run;
proc sort data=bb;
by id;
run;
data cc;
set bb;
by id;
if last.id then
check=substr(check,1,length(check)-1);
if last.id;
run;
l***o
发帖数: 5337
3
大牛啊!
随手写来,解决了我想了一个小时也没头绪的问题。除了景仰,还有什么可说。。。
让我试着给个包子。。。从来没干过,干不成莫怪。。。
l*****8
发帖数: 483
4
包子收到,谢谢
另外可以少一个步骤
proc sort data=aa;
by id;
run;
data bb;
length check $5500.;
set aa;
by id;
retain check;
if first.id then check='';
check =trim(check)||trim(feature)||'-';
if last.id then
check=substr(check,1,length(check)-1);
if last.id;
run;
l***o
发帖数: 5337
5
再谢!

【在 l*****8 的大作中提到】
: 包子收到,谢谢
: 另外可以少一个步骤
: proc sort data=aa;
: by id;
: run;
: data bb;
: length check $5500.;
: set aa;
: by id;
: retain check;

N****n
发帖数: 1208
6
真牛逼!怪不得我面试总失败。

【在 l*****8 的大作中提到】
: 包子收到,谢谢
: 另外可以少一个步骤
: proc sort data=aa;
: by id;
: run;
: data bb;
: length check $5500.;
: set aa;
: by id;
: retain check;

x******n
发帖数: 92
7
厉害啊~~~~~ 学习了
d******9
发帖数: 404
8
Good job!
I modified the codes a little bit:
if first.id then check="$";
check =trim(check)||"-"||trim(feature);
if last.id then N_feature=substr(check,3);
if last.id;
run;
It also works.

【在 l*****8 的大作中提到】
: 包子收到,谢谢
: 另外可以少一个步骤
: proc sort data=aa;
: by id;
: run;
: data bb;
: length check $5500.;
: set aa;
: by id;
: retain check;

d*******o
发帖数: 493
9
本大猫惨绝人寰的hash object写法,发个包子吧。
data have;
input id $ Feature $;
cards;
a dfdfd
a ddf
a dde
b dlk
b lk
;
run;
data _null_;
length newfeature $50;
if _n_ =1 then do;
declare hash h();
h.defineKey('id');
h.defineData('id', 'newfeature');
h.defineDone();
end;
set have end = eof ;
if h.find() ne 0 then do;
newfeature = feature;
h.add();
end;
else do;
newfeature = cats(newfeature, '-', feature);
h.replace();
end;
if eof then h.output(dataset: 'want');
run;
l***o
发帖数: 5337
10
大猫,真是惨绝人寰啊。。。你也要照顾一下在下的接受能力。。。看不懂啊。
但想到做人要厚道,还是给你发点猫粮吧。。。:)

【在 d*******o 的大作中提到】
: 本大猫惨绝人寰的hash object写法,发个包子吧。
: data have;
: input id $ Feature $;
: cards;
: a dfdfd
: a ddf
: a dde
: b dlk
: b lk
: ;

相关主题
请教一个SAS问题SAS problem ask for help!
SAS -proc transpose 急问!请问如果用SAS 解决这个问题
请教用SAS的一个数据处理的问题一个SAS问题,合并行
进入Statistics版参与讨论
d********h
发帖数: 2048
11
proc transpose data=test out=test1;
var feature;
by id;
data test2;
length c $ 1000;
set test1 ;
array tmp col1-col3;
do over tmp;
c=catx("_",of c tmp);
end;
proc print;

【在 l***o 的大作中提到】
: 请教:我有一个dataset,只有两个var: id 和 feature,都是character。 id有很多
: 重复
: 的,但重复几遍不一定。我想把同id的feature都连起来写在一行,就像下面这样:
: 原 data:
: ID Feature
: a dfdfd
: a ddf
: a dde
: b dlk
: b lk

l***o
发帖数: 5337
12
高手如云,破产也甘心。。。再发包子。。。

【在 d********h 的大作中提到】
: proc transpose data=test out=test1;
: var feature;
: by id;
: data test2;
: length c $ 1000;
: set test1 ;
: array tmp col1-col3;
: do over tmp;
: c=catx("_",of c tmp);
: end;

d******9
发帖数: 404
13
Nice idea.
Proc transpose 这个思路我也想到过,先 transpose , Array, 然后再合并字符串。
不过,写到半途而废了。
Array tmp col1-col3; 这里有一个问题,如果transpose 后不止3个 column,5,7个
或者更多怎么办???这里应该定义一个可变的变量才好。

【在 d********h 的大作中提到】
: proc transpose data=test out=test1;
: var feature;
: by id;
: data test2;
: length c $ 1000;
: set test1 ;
: array tmp col1-col3;
: do over tmp;
: c=catx("_",of c tmp);
: end;

s******r
发帖数: 1524
14
还有包子吗?
sorry. A typo. Just fixed.
proc sort data=aa;by id;run;
data bb;
length check $5500.;
set aa;
by id;
retain check;
check=catx('-',check,feature);
if last.id then do;output;check='';end;
run;

【在 l***o 的大作中提到】
: 请教:我有一个dataset,只有两个var: id 和 feature,都是character。 id有很多
: 重复
: 的,但重复几遍不一定。我想把同id的feature都连起来写在一行,就像下面这样:
: 原 data:
: ID Feature
: a dfdfd
: a ddf
: a dde
: b dlk
: b lk

l***o
发帖数: 5337
15
众位真以为我有钱啊。。。
马上发给你。

【在 s******r 的大作中提到】
: 还有包子吗?
: sorry. A typo. Just fixed.
: proc sort data=aa;by id;run;
: data bb;
: length check $5500.;
: set aa;
: by id;
: retain check;
: check=catx('-',check,feature);
: if last.id then do;output;check='';end;

d********h
发帖数: 2048
16
应该用 array temp col:;

【在 d******9 的大作中提到】
: Nice idea.
: Proc transpose 这个思路我也想到过,先 transpose , Array, 然后再合并字符串。
: 不过,写到半途而废了。
: Array tmp col1-col3; 这里有一个问题,如果transpose 后不止3个 column,5,7个
: 或者更多怎么办???这里应该定义一个可变的变量才好。

d******9
发帖数: 404
17
"array temp col:"= ???????
I do not know about this, can you explain? Thanks.

【在 d********h 的大作中提到】
: 应该用 array temp col:;
1 (共1页)
进入Statistics版参与讨论
相关主题
sort two same tables SQL but different results (转载)求教 SAS数据转化
SQL copy a table into a new table and add a new column (转载)请教一个SAS问题
请教SAS 问题SAS -proc transpose 急问!
请教sas高人(数据读入)请教用SAS的一个数据处理的问题
如何将SAS DATA中的变量名改名(不知道原变量名的前提下)SAS problem ask for help!
[合集] 请教:SAS help请问如果用SAS 解决这个问题
sas 编程 - data manipulation一个SAS问题,合并行
help for a sas question很挑战的data transformation problem help
相关话题的讨论汇总
话题: check话题: feature话题: data话题: newfeature话题: run