楼主: ying8501
8064 8

再请教:怎样把数据集中的数据行变列,列变行? [推广有奖]

  • 0关注
  • 0粉丝

小学生

92%

还不是VIP/贵宾

-

威望
0
论坛币
58 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
121 点
帖子
17
精华
0
在线时间
0 小时
注册时间
2007-2-7
最后登录
2013-8-12

楼主
ying8501 发表于 2007-3-19 15:55:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

前边问过这个问题,

有人告诉我用proc transpase;但是后来我发现只是输出时转了置,数据集实际并没变,这不是我要的结果.

那位能再帮帮我.

另外,能否定义一个二维数组,先把数据集中的数据放在数组中,转置以后,再把二维数组中的数据,放在一个新数据集中?

二维码

扫码加我 拉你入群

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

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

关键词:数据集 Trans SPA ans pas 数据

回帖推荐

sumc 发表于4楼  查看完整内容

应该可以这样写: data temp; set dataset_name; rename col1-col33=x1-x33; run; 还有的办法就是使用宏循环,稍微复杂点,不过上面已经有简单的办法解决

sumc 发表于2楼  查看完整内容

还是应该用proc transpase,你说数据集没有变是因为你没有定义输出.给你个例子 data a; input a b c ; datalines; 1 2 3 4 5 6 ; proc print; run; proc transpose out=b; run; proc print; run; 转前数据集a输出是: obs a b c 1 1 2 3 2 3 4 5 转后数据集b输出是: obs -name- col1 col2 1 a 1 4 2 b 2 5 3 c 3 6

本帖被以下文库推荐

沙发
sumc 发表于 2007-3-19 16:23:00

还是应该用proc transpase,你说数据集没有变是因为你没有定义输出.给你个例子

data a;
input a b c ;
datalines;
1 2 3
4 5 6
;
proc print;
run;
proc transpose out=b;
run;
proc print;
run;

转前数据集a输出是:

obs a b c

1 1 2 3

2 3 4 5

转后数据集b输出是:

obs -name- col1 col2

1 a 1 4

2 b 2 5

3 c 3 6

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

藤椅
ying8501 发表于 2007-3-19 17:04:00

谢谢了.成了.另外再请教一下,怎么把col1-col33(好比项很多)改为x1-x33呢?

用rename col1-col33 x1-x33; 好象不行.

板凳
sumc 发表于 2007-3-20 08:55:00

应该可以这样写:

data temp;

set dataset_name;

rename col1-col33=x1-x33;

run;

还有的办法就是使用宏循环,稍微复杂点,不过上面已经有简单的办法解决

已有 1 人评分论坛币 收起 理由
bakoll + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

报纸
maoxinshu 发表于 2007-3-20 09:54:00

请教sumc,如果将a,b,c,d,...,z重命名为x_a,x_b,x_c,x_d,...,x_z,如何实现?SAS不支持下述语法:

data temp;

set dataset_name;

rename a--z=x_a--x_z;

run;

我曾经用宏语言编写,旦无法运行:

%macro rename(startvar,endvar,pre);

data new;

set old;

array oldvar(*) &startvar--&endvar;

array newvar(*) &pre&startvar--&pre&endvar;/*SAS无法定义新变量*/

%do i=1 %to dim(oldvar);

rename oldvar(i)=newvar(i);

%end;

run;

%mend rename;

%rename(x1,zn,new_)

谢谢

地板
sumc 发表于 2007-3-20 16:30:00

不好意思,这个问题能力有限.没办法解决.

7
ying8501 发表于 2007-3-20 18:21:00
谢谢了.sumc.

8
alexleeliyichon 发表于 2007-3-25 21:00:00

学习ING。

9
bitcoin 发表于 2016-6-9 19:53:11
maoxinshu 发表于 2007-3-20 09:54
请教sumc,如果将a,b,c,d,...,z重命名为x_a,x_b,x_c,x_d,...,x_z,如何实现?SAS不支持下述语法:
data tem ...
array不能更改变量名

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

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