紫光一键重装系统问题后出现问题,紫光一键重装系统问题前是没有问题的,重装后就这样了,再次

[Base&SAS]&SAS中数据的转置:PROC&TRANSPOSE过程
TRANSPOSE过程的格式如下所示:
PROC TRANSPOSE &DATA=input-data-set&
&NAME=name&
&OUT=output-data-set&
&PREFIX=prefix&;
&DESCENDING& variable-1
&...&DESCENDING&
variable-n&
&NOTSORTED&;&&
variable(s);&&
&&VAR variable(s);
在PROC TRANSPOSE语句中可能出现的选择项有:
1)DATA=数据集名,用来说明要转置的数据集名,如果省略这一选择,则指定最新建立的数据集。
2)OUT=数据集名,用来说明转置所建立的新数据集名,如果省略这一选择,SAS将按内部程式给出新的数据集名。
3)LET 当ID出现重复时,那么只选用最后一条
4)NAME=字母&
&为含有输入数据集中被转置的变量名的输出数据集中的变量命名,如果省略这一选择,SAS将按内部程式指定为_NAME_。
5)PREFIX=字母(指定一个前缀,用来构成新变量名)。
BY语句 使输入数据集分组转置,分组变量被包括在输出数据集中。&
COPY语句 将变量复制到新的数据集中。
ID语句 用来指定转置后的变量名
IDLABEL语句 为转置后的变量名添加标签
VAR语句中应列出要被转置的变量名,否则原数据集中未在其他语句中列出的所有数值型变量都将被转置,字符型变量必须在VAR语句中列出才能被转置,未被转置的变量不进入新的数据集,除非它们已列入COPY或BY语句。
& &input Student $9. +1 StudentID
$ Section $ Test1 Test2 F
Capalleti 0545 1&&94 91
Dubose& & 1252
2&&51 65 91
Engles& & 1167
1&&95 97 97
2&&63 75 80
Krupski& &2527
2&&80 76 71
Lundsford 4860 1&&92 40
McBane& & 0674
1&&75 78 72
proc transpose data=score out=idlabel name=Test
proc print data=
& &title 'Student Test
输出OUTPUT:
----------------------------------------------------
以前的变量名&
&Capalleti&
&Lundsford& &
input salerid foodid money foodname $;
1 1 100 egg
1 2 300 cake
1 3 400 apple
2 2 230 cake
2 3 444 apple
2 4 540 pear
3 1 123 egg
3 2 120 cake
3 3 200 apple
3 4 500 pear
proc transpose data=sale out=saleout name=Saler
proc print data=
输出OUTPUT:
----------------------------------------------------
salerid& &
以前的变量名& & egg&
apple& & pear
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。苹果/安卓/wp
学科带头人
学科带头人
积分 3628, 距离下一级还需 2197 积分
权限: 自定义头衔, 签名中使用图片, 隐身, 设置帖子权限, 设置回复可见
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡, 千斤顶下一级可获得
道具: 变色卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
TA的文库&&
开心签到天数: 4 天连续签到: 1 天[LV.2]偶尔看看I
本帖最后由 我的素质低 于
19:16 编辑
我经常会处理一些比较大的表格,一般有2~3个G,大约上百万或千万条观测,十个左右的变量
在我用到的不多的几个过程步中,对于处理上述的大表格来说,比较费时的有以下几个:
1. proc sql(尤其是连接条件比较复杂的情况)
2. proc transpose
3. proc timeseries
我最近从网上搜和自己总结了几个能够加速上述过程,或者用变通的手段达到相同结果的方法。
先发一个快速转置,可用于替代proc transpose的宏吧
不是我做的,网上找的,经测试速度很快,和proc transpose参数设置相同,结果也相同。
方法是用data步来代替proc transpose,data步的效率很令人惊奇,也可以看出proc transpose本身应该有很大的改进空间,可惜SAS是封闭的,大牛也无能为力。
(7.83 KB, 售价: 1 个论坛币)
14:30:49 上传
自己从pdf里扣出来的,收1个币辛苦费
售价: 1 个论坛币
(551.06 KB)
14:30:49 上传
支持楼主:、
购买后,论坛将奖励 10 元论坛资金给楼主,以表示您对TA发好贴的支持
载入中......
总评分:&经验 + 230&
论坛币 + 150&
学术水平 + 4&
热心指数 + 5&
信用等级 + 5&
本帖被以下文库推荐
& |主题: 246, 订阅: 48
playmore邀请您访问ChinaTeX论坛!!!
最近找了DataStream的数据,都是xls的格式,而且都是横排的,必须转置。因为这个头疼呢。
再次感谢!
这个貌似挺有意思的,看一下。
听过Arthur 的讲课。一个年过花甲的老人。现在也做人才招聘,时不时广而告知几个sas职位。听众大多都有些sas 基础。但是他的slide 还是针对扫盲的。我有过10次悔恨,然后就不再去了。上一次花了¥3500。在课堂上睡了三天。最后有了感悟:为什么搞sas的不是语言表达有丈矮,就是english有口音?
jingju11 发表于
听过Arthur 的讲课。一个年过花甲的老人。现在也做人才招聘,时不时广而告知几个sas职位。听众大多都有些sa ...嗯,京剧你要换输入法了
另外这文章的第二作者
Xia Ke Shan, Chinese Financial Electrical Company, Beijing, China
查不到这个公司是何方神圣
京剧兄有了解吗?
I saw a lot his postings. 基本上言简意赅。没有运气尖刀他。
/pub/xia-keshan/44/896/4a2
jingju11 发表于
I saw a lot his postings. 基本上言简意赅。没有运气尖刀他。
/pub/xia-kes ...多谢,我对这个公司名字挺感兴趣
不知道如何将Financial和Electrical 连在一起,呵呵
jingju11 发表于
听过Arthur 的讲课。一个年过花甲的老人。现在也做人才招聘,时不时广而告知几个sas职位。听众大多都有些sa ...我英语还不错,表达很清晰,就是SAS不够硬,京剧,如何破
playmore 发表于
嗯,京剧你要换输入法了
另外这文章的第二作者playmore,我明年就毕业了,能不能给推荐个工作啊,最好是电子商务或互联网方面的数据分析和挖掘
初级学术勋章
初级学术勋章
初级热心勋章
初级热心勋章
中级热心勋章
中级热心勋章
初级信用勋章
初级信用勋章
中级学术勋章
中级学术勋章
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
论坛法律顾问:王进律师posts - 5,&
comments - 0,&
trackbacks - 0
首先,抛开SAS,回忆我们在数学课本上学习的转置是什么概念,转置如下图:
以上就是数学中的转置。
那么在SAS里该如何转置呢?
先看语法格式:
PROC TRANSPOSE &DATA=input-data-set& &DELIMITER=delimiter& &LABEL=label&
&LET& &NAME=name& &OUT=output-data-set& &PREFIX=prefix& &SUFFIX=suffix&;
BY &DESCENDING& variable-<span style="color: #
&&DESCENDING& variable-<span style="color: # ...&
&NOTSORTED&;
COPY variable(s);
VAR variable(s);
其中,VAR variable(s); 确定要转置的数据,后面跟数据对应的变量名;
ID确定转置后新变量的变量名,若没有该语句,则新变量名以COLN的形式命名;
BY &DESCENDING& variable-1
&&DESCENDING& variable-2 ...& &NOTSORTED&; 确定以什么变量分组,最终各个组分别转置,后面跟要分组的变量名;
COPY variable(s); 对于没有转置但是要保留的变量给复制下来;IDLABEL VARIABLE;/&LABEL=label& 给被转置的变量加上标签;
&PREFIX=prefix&新形成的变量的变量名的前缀;
&SUFFIX=suffix&新形成的变量的变量名的后缀;LET 允许转置中存在重复值。
先看代码如下:
INPUT ID X1 $ X2 $ X3 $;
<span style="color: # a1 a2 a3
<span style="color: # a4 a5 a6
<span style="color: # a7 a8 a9
PROC TRANSPOSE DATA=A1 OUT=B1;
VAR X1 X2 X3;
PROC PRINT;
代码中先造了一个如上图的矩阵,在进行了转置,输出结果为下图:
由结果可知,矩阵的主体就已经转置好了,其实SAS的PROC TRANSPOSE过程的核心是在于确定VAR语句,VAR跟着的变量名确定好了,整个转置的功能也完成的80%。
VAR跟着的变量就是原数据集中想转置的观测数据对应的变量名。
PROC TRANSPOSE DATA=A1 OUT=B1;
VAR X1 X2 X3;
加上ID语句之后的运行结果为:
直接以X1列的观测作为新变量的观测了。而在实际应用中我们会以对应的项目名称变量,为新变量命名(如下面代码);
INPUT ID XYZ $ X1 $ X2 $ X3 $;
<span style="color: # X a1 a2 a3
<span style="color: # Y a4 a5 a6
<span style="color: # Z a7 a8 a9
<span style="color: # X B1 B2 B3
<span style="color: # Y B4 B5 B6
<span style="color: # Z B7 B8 B9
<span style="color: # X C1 C2 C3
<span style="color: # Y C4 C5 C6
<span style="color: # Z C7 C8 C9
PROC TRANSPOSE DATA=A3 OUT=B3(DROP=_NAME_);
VAR X1 X2 X3;
PROC PRINT;
运行结果为:
以上代码演示了BY语句的效果,以ID的数据分类分组,然后在转置。
下面我们还可以看看其他几个options的效果;
PROC TRANSPOSE DATA=A4 OUT=B1(DROP=_NAME_)LET LABEL=STUDENT
NAME=TEACHER PREFIX=prefix SUFFIX=
VAR X1 X2 X3;
得到的结果如下:
有了附加的OPTIONS 的小功能,使数据集看上去更加具有可读性。
阅读(...) 评论()}

我要回帖

更多关于 重装系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信