楼主: cheerhappy
3684 14

[原创博文] 读入部分数据 [推广有奖]

  • 3关注
  • 7粉丝

讲师

22%

还不是VIP/贵宾

-

威望
0
论坛币
290 个
通用积分
0.1290
学术水平
6 点
热心指数
6 点
信用等级
7 点
经验
5316 点
帖子
373
精华
0
在线时间
241 小时
注册时间
2010-3-18
最后登录
2023-3-27

楼主
cheerhappy 发表于 2011-11-2 09:59:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
大家好,
      我不太会用sas,我一般都用stata处理数据,但我现在有个数据特别大,6G左右,我现在想把他拆开,分成十个,即若有3000个观察值的话,第一个的观察值为1-300,第二个位301到600,以此类推。希望哪个懂sas的帮忙写下语句吧,非常感谢了!
二维码

扫码加我 拉你入群

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

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

关键词:部分数据 Stata 非常感谢 sas的 处理数据 左右

回帖推荐

playmore 发表于6楼  查看完整内容

可以用下面简单的方法: data get1-get100; set have; if 0

本帖被以下文库推荐

沙发
yugao1986 发表于 2011-11-2 11:01:56
三人行必有我师

藤椅
cheerhappy 发表于 2011-11-2 14:56:54
yugao1986 发表于 2011-11-2 11:01
http://blog.csdn.net/yugao1986/article/details/6861717
你好,非常谢谢你,你给的资料很好,但是我还没开始学习sas,现在又着急使用,大概看了下那个论坛,一时自己也写不出来语句,不知道可否帮忙写一下啊!
你看我的语句对吗?
data mylib.newdata;
set tj.data1 nobs=nobs;
if nobs-_N_<100;
run;
proc print data=new;
run;


这样输出的newdata数据集是有100个观测值,我想知道为什么不是99个?
还有我的这个语句对吗?
不放弃、不抛弃

板凳
honghejing 发表于 2011-11-2 15:52:30
最后nobs-_n_可能是0-99

报纸
spssone 发表于 2011-11-2 16:23:59
yugao1986提供的网页里面
用宏来写
%macro split(num);
data _null_;
if 0 then set sashelp.class nobs=count;
call symput('numobs',put(count,8.));
run;
%let m = %sysevalf(&numobs/&num, ceil);
%do I=1 %to &m;
data orig_&I;
set sashelp.class;
   if %eval(&num*(&I-1)) <_n_<= %eval(&num*&I);
run;
%end;
%mend split;

%split(8);/*每个文件的行数*/

地板
playmore 发表于 2011-11-3 09:07:50
可以用下面简单的方法:

data get1-get100;
set have;
if 0<_N_<300 then output get1;
if 301<=_N_<600 then output get2;
...
run;

我只是不确定第一行是否可以写成get1-get100,还有就是中间if语句可以写个循环
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

7
劼007 发表于 2011-11-3 22:25:21
playmore 发表于 2011-11-3 09:07
可以用下面简单的方法:

data get1-get100;
恩恩,我赞同你的方法,逻辑清楚啊,虽然不够简洁

8
cheerhappy 发表于 2011-11-11 09:52:02
honghejing 发表于 2011-11-2 15:52
最后nobs-_n_可能是0-99
请问,可以解释下吗?
我不太明白你的意思啊!
不放弃、不抛弃

9
cheerhappy 发表于 2011-11-11 09:52:57
playmore 发表于 2011-11-3 09:07
可以用下面简单的方法:

data get1-get100;
楼下有人支持你,我也按照你的方法试试吧!
谢谢哦!
不放弃、不抛弃

10
cheerhappy 发表于 2012-1-8 23:04:09
playmore 发表于 2011-11-3 09:07
可以用下面简单的方法:

data get1-get100;
我试过了,没实现啊!
不放弃、不抛弃

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

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