楼主: lizziezeng
3412 5

[求助]怎么在sas里实现数据重新排列 [推广有奖]

  • 0关注
  • 0粉丝

本科生

6%

还不是VIP/贵宾

-

威望
0
论坛币
360 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
878 点
帖子
53
精华
0
在线时间
54 小时
注册时间
2008-8-2
最后登录
2017-6-18

楼主
lizziezeng 发表于 2008-8-3 01:15:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

各位大哥大姐~~  我有一个很头痛的问题:数据重新排列

比如:  A  12 

            A     34

            B    47

            B    68

            B    52

这样的排列,我想把它变成下边的排列:

          A   12   34  

          B    47   68   52

有哪位大虾知道在sas或者其他统计软件里边怎么实现不?感激不尽!

二维码

扫码加我 拉你入群

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

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

关键词:感激不尽 统计软件 大哥大 数据 SAS 排列

回帖推荐

terryw 发表于3楼  查看完整内容

sas base里面有一个叫做transpose的过程可以完成你的要求假如你的数据如下:Obs    name    value 1      a        12 2      a        34 3      b        47 4   &n ...

本帖被以下文库推荐

沙发
liutaows 发表于 2008-8-3 01:46:00

假设A,B所在列的变量名为Parameter而后面的数值所在列的变量名为Value,程序如下

proc transpose data = dataname out = transdata;

var value;

id parameter;

run;

我没有测试 应该没问题

藤椅
terryw 发表于 2008-8-3 02:01:00

sas base里面有一个叫做transpose的过程可以完成你的要求

假如你的数据如下:

Obs    name    value

 1      a        12
 2      a        34
 3      b        47
 4      b        68
 5      b        52


完成你的要求的sas 代码可以这样写

proc transpose data=a out=b;
by name;
var value;
run;

其中a是你原有转换前的数据集,b是转换后的数据集。需要特别说明,为了使用by statement, 需要对原有数据提前按name排序(如果原有数据的存储不是按照name排序的)

转换的结果如下:

Obs    name    _NAME_    COL1    COL2    COL3

 1      a      value      12      34       .
 2      b      value      47      68      52

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

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

板凳
terryw 发表于 2008-8-3 02:09:00
以下是引用liutaows在2008-8-3 1:46:00的发言:

假设A,B所在列的变量名为Parameter而后面的数值所在列的变量名为Value,程序如下

proc transpose data = dataname out = transdata;

var value;

id parameter;

run;

我没有测试 应该没问题

 ID statement 可能不行,帮助里关于ID statement 这样写的 Specifies a variable in the input data set whose formatted values name the transposed variables in the output data set. 而且,

Duplicate ID Values

Typically, each formatted ID value occurs only once in the input data set or, if you use a BY statement, only once within a BY group. Duplicate values cause PROC TRANSPOSE to issue a warning message and stop.

Typically, each formatted ID value occurs only once in the input data set or, if you use a BY statement, only once within a BY group. Duplicate values cause PROC TRANSPOSE to issue a warning message and stop.

[此贴子已经被作者于2008-8-3 2:10:19编辑过]

报纸
lizziezeng 发表于 2008-8-4 23:36:00
多谢多谢~~试验成功!太感谢了  发奋学习sas!!

地板
cuihao1986 发表于 2008-8-5 10:08:00
跟着也学了一招,谢谢!

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

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