楼主: manao531
2183 9

[程序分享] do语句编程改错 [推广有奖]

  • 0关注
  • 0粉丝

本科生

3%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
8407 点
帖子
43
精华
0
在线时间
95 小时
注册时间
2009-9-16
最后登录
2017-9-15

楼主
manao531 发表于 2011-11-3 01:54:04 |AI写论文
4论坛币
本人是编程菜鸟,近日学习sas 遇到一个难题无法解决。
数据库中有observation200000个,变量5个,目标:
(1)找出missing data,将missing data标记为-1,
(2)对变量1进行分类,数值在1000—1999之间的变量1得值记为1,以此类推,在9000-9999间的标记为9。其他变量暂时不变。
对于问题一我自己写了do语句,但是只有一个返回值,而且其他变量都没有了。
data sasuser.m;
do obs=1 to 200000;
if missing(var01) then
var01='-1';
output;
end;
run;
对于问题二我写的程序如下
data sasuser.m;
var01=int(var01/1000);
output;
run;
也是只有一个返回值,而且是missing value

求高人指点啊 菜鸟找不到北的日子好难受呀哎
回答正确追加6个论坛币

最佳答案

sondra-lsz 查看完整内容

程序短消息给你了,运行一下试试~~~
关键词:observation observat missing sasuser output 数据库 程序 而且

沙发
sondra-lsz 发表于 2011-11-3 01:54:05
程序短消息给你了,运行一下试试~~~

藤椅
manao531 发表于 2011-11-3 20:21:49
求助阿那位高人帮帮忙呀!!!!!

板凳
Eehanz 发表于 2011-11-3 22:36:12
/*测试数据*/
data m(drop=i);
do i =1 to 10000;
  if mod(i,100)=0 then do;
    var01=.;
  end;
  else var01=i;
  output;
end;
run;
/*找出missing data,将missing data标记为-1*/
data m_missing;
set m;
if missing(var01) then var02=-1;
else var02=var01;
run;
/*对变量1进行分类*/
data m_classfication;
  set m;
  var03=floor(var01/1000);/*这里把小于1000的数标记为0*/
run;

这个程序你试试呢

报纸
manao531 发表于 2011-11-4 00:03:20
Eehanz 发表于 2011-11-3 22:36
/*测试数据*/
data m(drop=i);
do i =1 to 10000;
刚吃饭去了~~~恩恩~~我果然需要好好学习呀!!

地板
manao531 发表于 2011-11-4 00:13:51
所以需要重新设一个变量? 我以为用了do循环就可以只使用var01

7
manao531 发表于 2011-11-4 07:57:33
可是 我的目的是给var01赋值~

8
Eehanz 发表于 2011-11-4 10:17:55
manao531 发表于 2011-11-4 00:13
所以需要重新设一个变量? 我以为用了do循环就可以只使用var01
  1. /*测试数据*/
  2. data m(drop=i);
  3. do i =1 to 10000;
  4.   if mod(i,100)=0 then do;
  5.     var01=.;
  6.   end;
  7.   else var01=i;
  8.   output;
  9. end;
  10. run;
  11. /*找出missing data,将missing data标记为-1*/
  12. data m_missing;
  13. set m;
  14. if missing(var01) then var01=-1;
  15. run;
  16. /*对变量1进行分类*/
  17. data m_classfication;
  18.   set m;
  19.   var01=floor(var01/1000);/*这里把小于1000的数标记为0*/
  20. run;
复制代码

9
manao531 发表于 2011-11-7 03:08:04
找出missing data的部分运行结果是 所有的missing data 都被重数据库里面删除了 分类的部分是其他的变量都没有了 而且var01所有的返回值都是0 唉我都要怀疑是不是我的sas装的有问题了

10
manao531 发表于 2011-11-11 08:25:03
哦 我找到之前的错误了~多谢楼上啊 ~~
也谢谢各位的回答啊~

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

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