楼主: magneticnana
1465 9

[原创博文] 请教SAS 数据处理 [推广有奖]

  • 0关注
  • 0粉丝

VIP1+

初中生

4%

还不是VIP/贵宾

-

威望
0
论坛币
3597 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
108 点
帖子
10
精华
0
在线时间
12 小时
注册时间
2010-11-12
最后登录
2012-8-2

楼主
magneticnana 发表于 2011-7-22 05:55:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
怎样让一行不同的观测值和其中的一个观测值进行比较呢?多谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据处理 观测值 数据分析专题 数据处理 数据分析软件 数据分析报告 面板数据分析 excel数据分析 数据分析方法 项目数据分析

回帖推荐

wangyf0218 发表于8楼  查看完整内容

分成两个的话,下面应该就ok,如果是多个,加一个循环吧 data _null_; set zn.final; if _n_=6001 then call symput('dt',date); run; data zn.data1 zn.data2; set zn.final; if date

本帖被以下文库推荐

沙发
magneticnana 发表于 2011-7-22 07:27:04
我想把要比较的那个数据写成一行,但是因为要写在data step里,所以不能用proc sql. 应该怎么做呢?

藤椅
magneticnana 发表于 2011-7-22 07:30:49
而且要比较的数据,只知道它的位置,不知道它具体是多大。而且这个位置肯定不在第一个,所以不能用retain。因为后面的运算,所以我也不想把它proc sort descending,我该怎么办呢?

板凳
priss111 发表于 2011-7-22 07:32:28
1# magneticnana
首先想到的用if ... then...; else...;


您的问题:
是同一个变量的不同值的比较,
还是不同变量的不同值的比较?。

我理解不管是哪种都可以用条件语句的。

报纸
magneticnana 发表于 2011-7-22 07:53:43
4# priss111
我是想把一个数据集按照date分开,因为总数据集很大,所以我想保证数据集的行数不大于60000,而且同一天的数据在一个数据集上。
我的逻辑是先找到第60001个数据对应的日期,然后根据这个日期把数据集分开。
data zn.data1 zn.data2;
set zn.final;
index=_n_;
if index=60001 then m=date;
if date<m then output zn.data1;  
if date<m then delete;
if =60001 then m=date;
if m=. then m=0;
if date<m then output zn.data2;
if date<m then delete;
run;
上面的代码有错,m不是完整的一行数据,我现在就想得到一行数据,等于m的值。(m就是第60001个数据对应的日期)
多谢拉

地板
yugao1986 发表于 2011-7-22 08:15:17
若果仅仅是将前6000个观察分为一个数据,其他的另一个数据的话。不用找到m吧,直接这样
  1. data zn.data1 zn.data2;
  2.    set zn.final;
  3.    if _n_<=6000 then output zn.data1;  
  4.    else output zn.data2;
  5. run;
复制代码
三人行必有我师

7
magneticnana 发表于 2011-7-22 08:20:17
不仅需要每一个数据集里的观测值个数小于60000,还需要相同的日期的数字放在同一个数据集里,因为每一天由好几千个数据。所以每一个数据集的大小不确定。
6# yugao1986

8
wangyf0218 发表于 2011-7-22 09:50:52
分成两个的话,下面应该就ok,如果是多个,加一个循环吧
data _null_;
set zn.final;
if _n_=6001 then call symput('dt',date);
run;

data zn.data1 zn.data2;
set zn.final;
if date<&dt. then output zn.data1;
else output zn.data2;
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

9
wangyf0218 发表于 2011-7-22 09:51:53
日期必须是排序的,如果不是,先排序

10
magneticnana 发表于 2011-7-23 03:34:54
8# wangyf0218
问题解决了,很感谢你!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 03:03