sas_2
来源:互联网 发布:mac系统怎么改用户名 编辑:程序博客网 时间:2024/06/05 20:53
记录时间:2017年09月04日 AM
记录人:golden
这一周有新的任务,但是我想把前面的任务再好好的检查一遍,于是就挨个检查了一遍。检查到几个数据集的时候,发现有些不对。具体的问题就是我的dataset里面的Observations的数目对不上。然后我就开始找为什么对不上的原因。
起初我以为是因为我的做法不对。需要做的问题是,把针对一个变量的不同取值分组取出来,那么我的办法是先分别针对变量的不同取值分别取出来做成数据集,然后使用merge by就可以了。前面的Record1里面已经提到,在进行merge by之前需要对数据进行proc sort。如果有多个变量,那么这些变量都需要进行proc sort。否则进行merge by的时候,不同dataset的相同的variable会被覆盖。那么这些问题也就解决了。但是现在的问题是为什么observations的数目对不上,所以我不禁怀疑了一下是否在这个地方使用merge是不正确的。处于对自己的不自信,我还是用了另外一种方法proc transpose进行了一下检查。Proc transpose的用法如下:
Proc transpose data=input-dataset put=output-dataset;
By By-variables;
Id Id-variables;
Var Need-to-transpose-name;
Run;
其中input-dataset:需要被转置的dataset,即原dataset。
Output-dataset:转置后数据输出的dataset。
By-variables:分组转置的分组var,可允许多个变量进行分组。
Id-variables:用来指定被转置的数据的变量名。
Need-to-transpose-name:需要被转置的变量名。若不指定,那么原dataset中的numeric数值型都被转置。(char型必须在Var语句后列出才会被转置。)没有被转置的var不进入output-dataset。
这样做出来之后进行比对发下,数据集的observations依然如故。我不禁有一点懵逼,同时也为自己的不自信感到惭愧。最后终于发现了不同之处是什么,那就是我没有对数据集进行标准化。这里的标准化就是虽然有的数据没有列出来,也就是说试验有些没有做,但是在标准化中他是应该存在的。就像你去医院进行体检一样,有很多项,虽然有的项目你并没有进行检查,但是最后的记录里面项目是会存在的,只是数据为空。
最后想说一句,发现了问题并了解问题是怎么来的真的很开心;而且还顺便复习以及加深理解了一下proc transpose过程。希望以后仍然可以发现问题并解决问题。###
Record 3
记录时间:2017年09月04日 AM
记录人:golden
这个地方想提一下一个比较简单的但是也是我遇到过的一个问题。说不定以后还会遇到样的问题:在sas中经常会遇到一些特殊符号,当然这些特殊符号指的是在电脑的键盘上没有的符号,比如说温度的单位,这个问题困扰了我好一会,最后还是问了以为大神才知道的解决方法。
解决方法是:找到特殊符号的Unicode编码,在unicode table里面找到特殊符号所在的位置,然后横向有一个四位编码A,纵向有一个两位的编码B;将A和B按照16进制相加得到xxxx;最后在在sas中使用的时候语法是 ~{Unicode xxxx}。比如说温度的单位的unicode 编码是2013;那么使用时就是 ~{Unicode 2013} 。###
- sas_2
- 【面试题】海量数据处理相关题目
- 不安装oracle客户端,用plsql连接oracle
- IVL和SVL区别
- [初学笔记] matlab中的倒计时程序(改良版,可随意input秒数)
- HDU 6148 Valley Numer (数位dp)
- sas_2
- top命令快捷键介绍,交互命令,切换排序方式
- 怎么设计企业网站能够提升用户体验?
- Java 空指针调用静态方法
- Selenium2+Python2.0自动化测试【15】 文本框
- log4J对Sping boot 工程的日志记录
- java前后端分离项目整合CAS实现单点登录解决方案
- ImageLoader加载图片
- vue-cli引用jquer