楼主: zhangrundatd
1271 3

求助 [推广有奖]

  • 0关注
  • 0粉丝

博士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
238 点
帖子
27
精华
0
在线时间
436 小时
注册时间
2011-2-15
最后登录
2023-8-8

楼主
zhangrundatd 发表于 2013-5-31 09:12:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data test;      set mzbg.csmardata;  
   where zqdm = '000426';  
   if gljyje ^= . then gljyje = log(gljyje);  
   if gljyje = . then gljyje = 0;
run;

我要对gljyje列取对数运算,因为该列存在缺失值所以我用if条件过滤缺失值,但是运行结果提示:

NOTE: 在以下位置无法执行算术运算。运算结果已设为缺失值。       每个位置的指定方式: (次数)(行:列)。      1 2504:33
似乎if条件没有起到作用,然后我又换成下面的做法仍然不行。
data test;
   set mzbg.csmardata;
   where zqdm = '000426';
   if gljyje = . then gljyje = 1;
   gljyje = log(gljyje);
run;
即把所有缺失值取对数后变为0。(原gljyje列不存在为零的数据)




二维码

扫码加我 拉你入群

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

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

关键词:CSMAR Where RData Data Then where

沙发
playmore 发表于 2013-5-31 10:07:33
取对数的条件是大于0

if gljyje GT 0 then gljyje=log(gljyje);
else gljyje=.;

你看这样行不?
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
jingju11 发表于 2013-5-31 10:59:04
playmore 发表于 2013-5-31 10:07
取对数的条件是大于0

if gljyje GT 0 then gljyje=log(gljyje);
你说的很对。log()方程不在乎是否缺失,而在乎是否为正值。而作者的条件语句根本没有排除《=0的可能。京剧

板凳
zhangrundatd 发表于 2013-6-1 16:08:03
thanks very much.

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

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