楼主: the_fly_winds
3974 3

[程序分享] SAS如何这样转置并复制数据? [推广有奖]

  • 0关注
  • 1粉丝

已卖:168份资源

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
1139 个
通用积分
4.9700
学术水平
16 点
热心指数
24 点
信用等级
14 点
经验
2333 点
帖子
106
精华
0
在线时间
264 小时
注册时间
2014-9-28
最后登录
2025-6-4

楼主
the_fly_winds 发表于 2018-9-14 13:05:18 |AI写论文
50论坛币
有这样的一个原始的csv文件:
id,2001,2002
a,1,2
b,3,4

各位请复制到csv中自行创建一下下,数据简单就不要附件了.

请一定要按照上面的数据创建数据,因为另一个问题是,我想知道

当变量名为数字时要如何读入呢?

想要的结果:
id time value
a 2001 1
a 2002 2
b 2001 3
b 2002 4

请展示从文件读入到数据处理的全过程!

再次,请按照本文所示的数据创建源数据,不能有任何其他更改.

沙发
popodan 在职认证  发表于 2018-9-17 05:49:38
data a;
input id $ Y2001 Y2002; /*SAS 变量名不能数字开头, 就加了字母Y在前面*/
cards;
a 1 2
b 3 4
;
run;

proc transpose data=a out=b(rename=(col1=value)) name=time;
by id;
run;

结果就是你要的。

藤椅
mengfanshun 发表于 2019-4-10 16:47:46
若变量名为数字时,不符合原始的SAS命名规则,但非要求变量名是数字,可以使用全局语句:option validvarname=any;

板凳
mengfanshun 发表于 2019-4-10 17:08:54

/*查看变量名*/
proc contents data=b;
run;
/*修改变量名*/
proc datasets library=work;
modify b;
rename col1=value _name_=time;
run;

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

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