SAS基础3
SAS数据集的转置
-
proc transpose <out=数据集> <name=变量名>
- out:转置后的数据集名称;无则默认为原数据集
- name为该变量新命名的名字
-
by
变量1..... - by语句指定的变量不进行转置
-
id 变量1 变量2
- id语句指定转置前数据集中的一个变量,无则默认转置后的变量名依次为_NAME_、COL1、COL2、COL3、……
-
var 变量1 变量2
data vas; input name$ id group vas1-vas3; cards; LIXM 1 1 5 5 6 ZHMI 2 2 8 5 5 FEND 3 2 7 4 5 LIMZ 4 1 6 6 3 WAXF 5 2 6 7 5 DOCX 6 1 6 5 5 ; proc transpose data =vas out=vas1 name =name; id name; proc print; run;
数据集的比较
-
proc compare <base=数据集 compare=数据集>
; - nosummary的作用是不显示一些概括性的结果
-
by变量1 变量2 ……;
- by后通常是id号,保证比较时不会出现错位
对变量进行注释
对变量的值进行标注
-
proc format;
invalue <$> 格式名 变量或范围1=输入格式1 变量或范围2=输入格式2 ……;
value <$> 格式名 变量或范围1=输出格式1 变量或范围2=输出格式……;
- 个人认为invalue与value中的$是伴随出现的
proc format; invalue age low-<40=30 40-<50=40 50-<60=50 60-high=60; value gfmt 1="male" 2="female"; data age; input id gender age age.; format gender gfmt.;
设置变量长度
- 在SAS中新变量出现时的长度即为该变量的长度,无法改变,因此可通过length函数进行设置。
- length 变量1 <$> 长度1 变量2 <$> 长度2
数值函数
函数 | 用途 |
---|---|
mod(x,y) | 返回x除以y的余数 |
abs(x) | 返回x的绝对值 |
exp(x) | 返回x的指数值 |
log(x) | 返回x的自然对数 |
log10() | 返回x以10为底的对数值 |
sqrt(x) | 返回x的平方根 |
与数值舍入有关
函数 | 用途 |
---|---|
cel(x) | 返回>=x的最小整数 |
floor(x) | 返回<=x的最大整数 |
int(x) | 返回x的整数部分 |
函数 | 用途 | 函数 | 用途 |
---|---|---|---|
n | 求例数(不含缺失值) | sum | 求和 |
nmiss | 求缺失例数 | stderr | 求标准误 |
mean | 求均数 | min | 求最小值 |
median | 求中位数 | max | 求最大值 |
geomean | 求几何均数 | smallest | 求第几小的值 |
std | 求标准差 | largest | 求第几大的值 |
range | 求全距 | pctl | 求百分位数 |
iqr | 求四分位数间距 | ||
- input函数的主要作用是将字符型变量转换为数值型
- put函数的主要作用是将数值型变量转换为字符型
更改大小写字母
- upcase作用是将所有字母改为大写
- lowcase 作用是将所有字母改为小写、
变量或字符串的连接捏
cat (变量或字符串1,…) | 合并几个变量或字符串,包括空格 |
---|---|
cats (变量1,…) | 合并几个变量或字符串,去除空格 |
catx(分隔符,变量或字符串1,…) | 合并几个变量或字符串,可插入自定义分隔符 |
查找变量中的字符串
-
find(变量或字符串,查找内容<,“i"> <,起始位置>)
- i表示忽略大小写
- v对于多个字符的查找,find必须是所有字符都完全匹配才算找到
-
findc(变量或字符串,查找内容<,“i"> <,起始位置>)
- 而indc只要找到字符中的任意一个就算找到
记录学习的点点滴滴