如何在SAS数据集中新加入变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SAS数据集中新加入变量相关的知识,希望对你有一定的参考价值。

参考技术A DATA x;
INPUT y@@;
x=y;
cards;
5 4 4 3 4 4 4 4 2
;
proc print;
run;
x就是新增的一个变量 ,等于y的值。
参考技术B 用set语句,将文件b中的新变量加入到文件a中,如下。
data c;
set a b;
run;
参考技术C ...........
data a;
new=1;
new2='a';
run;

new 和new2就是新变量。。。。本回答被提问者采纳

我的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号,保证比较时不会出现错位

    对变量进行注释

    • [ ] ``` SAS
      data baseline;
      input id gender age;
      label gender="性别" age="年龄";
      cards;
      1 1 36
      2 2 33
      3 1 31
      4 2 30
      ;
      proc print label;
      run;

    对变量的值进行标注

    • 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只要找到字符中的任意一个就算找到











以上是关于如何在SAS数据集中新加入变量的主要内容,如果未能解决你的问题,请参考以下文章

怎样在sas数据集中选取某些数据行形成新的数据集

SAS:如何创建(日期变量)数据集

我的SAS菜鸟之路3

我的SAS菜鸟之路3

sas如何计算相邻观测的差值

SAS 中怎么把一个数据集中的某个变量 添加到另一个数据集中?谢谢高手指教。