全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2126 9
2011-11-03
悬赏 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 查看完整内容

程序短消息给你了,运行一下试试~~~
二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-3 01:54:05
程序短消息给你了,运行一下试试~~~
二维码

扫码加我 拉你入群

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

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

2011-11-3 20:21:49
求助阿那位高人帮帮忙呀!!!!!
二维码

扫码加我 拉你入群

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

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

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;

这个程序你试试呢
二维码

扫码加我 拉你入群

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

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

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

扫码加我 拉你入群

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

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

2011-11-4 00:13:51
所以需要重新设一个变量? 我以为用了do循环就可以只使用var01
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群