楼主: dxystata
2631 3

SAS如何读入这样的数据集 [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2014-10-31 20:38:37 |AI写论文
100论坛币
2014-10-31_202145.jpg

1. SAS如何读入这样的数据集?
2. 如何得到第1列非缺失值的上一行第几行?比如aaa2数据集第1列b的上一行为第2行,c的上一行为第4行。根据第1列判断,希望程序能通用。希望得到的数据集为:
var x1 tag
  a  aa   .
     bb   2  
  b aa   .
     bb   4
  c  aa   .
     bb   

并且将2 4放入macro变量。

3. 如何得到第2列非缺失值的上一行第几行?比如aaa1数据集第2列分别为2 4 6 8 10。根据第2列判断,希望程序能通用。
希望得到的数据集:
var  x1  y2 tag2
a    aa    1     .
             2     2
      bb   1     .
             2    4
b    aa   1     .
             2    6
      bb  1     .
            2     8
c     aa  1    .
            2    10
      bb  1     .
            2     .


也可能出现不规则的情况。谢谢!



关键词:数据集 Macro VaR tag 缺失值 如何
已有 1 人评分经验 学术水平 收起 理由
reduce_fat + 33 + 2 鼓励积极发帖讨论

总评分: 经验 + 33  学术水平 + 2   查看全部评分

本帖被以下文库推荐

沙发
yongyitian 发表于 2014-10-31 20:38:38
input_data.JPG Input_code.JPG

  1. data bbb1;
  2.     set aaa1;
  3.     set aaa1 (rename=(var=var_ x1=x1_ y=y_) firstobs=2) end=last;
  4.     if missing(x1) and ^missing(x1_) then tag=_n_;
  5.     output;
  6.     if last then do;
  7.        var=var_;
  8.        x1 = x1_;
  9.         y = y_; output;
  10.     end; drop var_ x1_ y_;
  11. run;

  12. data bbb2;
  13.     set aaa2;
  14.     set aaa2 (rename=(var=var_ x1=x1_) firstobs=2) end=last;
  15.       length macro_tag $50;
  16.       retain macro_tag;
  17.     if missing(var) and ^missing(var_) then do;
  18.        tag = _n_;
  19.        macro_tag = catx(' ', macro_tag, put(tag, 2.));
  20.     end;
  21.     output;
  22.     if last then do;
  23.        var = var_;
  24.         x1 = x1_;
  25.     call symput('macro_tag', macro_tag); output;
  26.     end; drop var_ x1_;
  27. run;
复制代码
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
reduce_fat + 3 + 1 + 4 热心帮助其他会员
dxystata + 50 + 3 + 3 好的意见建议

总评分: 经验 + 50  学术水平 + 6  热心指数 + 4  信用等级 + 4   查看全部评分

藤椅
dxystata 发表于 2014-11-1 08:25:03
有没更简单的方法?谢谢!

板凳
yongyitian 发表于 2014-11-1 09:18:04
上面是按列输入的标准方法. 下面的方法不用数列数.

input_infile_.JPG

已有 1 人评分经验 学术水平 热心指数 收起 理由
reduce_fat + 31 + 1 + 1 鼓励积极发帖讨论

总评分: 经验 + 31  学术水平 + 1  热心指数 + 1   查看全部评分

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

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