楼主: shi123_tian
5504 7

[原创博文] sas运行结果让人费解,求助!(输出a 不等于b的结果,运行后发现:a和b相等的被输出) [推广有奖]

  • 0关注
  • 1粉丝

博士生

82%

还不是VIP/贵宾

-

威望
0
论坛币
153 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
24041 点
帖子
149
精华
0
在线时间
301 小时
注册时间
2008-2-18
最后登录
2020-5-18

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
为什么sas程序中,输出a 不等于b的结果,运行后发现:a和b相等的情况,也被输出?
(a和b均为数值型变量)
data m2;
set  m1;
if a ne b then output;
run;

谢谢诸位!
二维码

扫码加我 拉你入群

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

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

关键词:output sas程序 outpu Then Data 程序

沙发
chendonghui1987 发表于 2012-4-24 10:37:06 |只看作者 |坛友微信交流群
我这里没问题呀,把你的代码都贴出来

使用道具

藤椅
shi123_tian 发表于 2012-4-24 15:11:40 |只看作者 |坛友微信交流群
由于不能上传sas数据集,只好导出为csv,又转换为xls格式。
data p1;
set p;
if a ne b then output;
run;

data p2;
set p;
if a eq b then output;
run;

日志显示为:
1    data p1;
2    set p;
3    if a ne b then output;
4    run;

NOTE: 从数据集 WORK.P 读取了 24 个观测。
NOTE: 数据集 WORK.P1 有 24 个观测和 2 个变量。
data p2;
7    set p;
8    if a eq b then output;
9    run;

NOTE: 从数据集 WORK.P 读取了 24 个观测。
NOTE: 数据集 WORK.P2 有 0 个观测和 2 个变量。

觉得程序运行结果不对,不知为什么?

11.xls

13.5 KB

使用道具

板凳
shi123_tian 发表于 2012-4-24 15:12:47 |只看作者 |坛友微信交流群
对同样的数据,我采取另外一种方式,发现运行结果正常、合理,
data p;
input obs a b;
cards;
                                   1     30.090     39.090
                                   2     65.331     65.331
                                   3     39.600     39.600
                                   4     13.926     13.926
                                   5     48.510     48.510
                                   6     51.370     51.370
                                   7     52.620     52.630
                                   8     30.200     30.200
                                   9     27.100     27.000
                                  10     39.480     39.490
                                  11    108.400    108.300
                                  12     75.960     75.900
                                  13     54.140     54.143
                                  14     68.620     68.620
                                  15    127.893    127.893
                                  16     58.570     58.571
                                  17      8.243      8.234
                                  18     35.990     36.000
                                  19     28.807     28.807
                                  20     84.916     84.916
                                  21     79.064     79.070
                                  22    108.102    108.102
                                  23     67.204     67.204
                                  24    281.600    281.500
;
run;

data p1;
set p;
if a ne b then output;
run;

data p2;
set p;
if a eq b then output;
run;

真不知为什么,百思不得其解。

使用道具

报纸
chendonghui1987 发表于 2012-4-24 15:35:11 |只看作者 |坛友微信交流群
我怎么没有你的情况,你的p数据集是怎么进入程序的,是直接导入的吗

data p;
        input a  b;
        cards;
30.09        39.09
65.3311        65.3311
39.6        39.6
13.926        13.926
48.51        48.51
51.37        51.37
52.62        52.63
30.2        30.2
27.1        27
39.48        39.49
108.4        108.3
75.96        75.9
54.1395        54.1431
68.6196        68.6196
127.8928        127.8928
58.5703        58.5713
8.243        8.2338
35.99        36
28.8068        28.8068
84.9155        84.9155
79.064        79.07
108.1022        108.1022
67.2044        67.2044
281.5999        281.4999
;
run;

data p1;
set p;
if a ne b then output;
run;

data p2;
set p;
if a eq b then output;
run;

使用道具

地板
shi123_tian 发表于 2012-4-24 15:54:07 |只看作者 |坛友微信交流群
chendonghui1987 发表于 2012-4-24 15:35
我怎么没有你的情况,你的p数据集是怎么进入程序的,是直接导入的吗

data p;
我是采取这种方式,看看运行情况如何,结果发现是对的。
然而如果从xls,到sas数据集,再运行,发现是错误的。
你试试xls的情况,看看

使用道具

7
chendonghui1987 发表于 2012-4-24 16:18:35 |只看作者 |坛友微信交流群
我用sas导入了一下,试了一下程序,还是没问题呀,这是我sas导入数据所自动生成的代码.看看和你的有什么不同.


PROC IMPORT OUT= WORK.m
            DATAFILE= "C:\Documents and Settings\Administrator\桌面\11.x
ls"
            DBMS=EXCEL REPLACE;
     SHEET="'1$'";
     GETNAMES=YES;
     MIXED=NO;
     SCANTEXT=YES;
     USEDATE=YES;
     SCANTIME=YES;
RUN;

使用道具

8
飞过流年 发表于 2017-4-4 20:26:39 |只看作者 |坛友微信交流群
shi123_tian 发表于 2012-4-24 15:54
我是采取这种方式,看看运行情况如何,结果发现是对的。
然而如果从xls,到sas数据集,再运行,发现是错 ...
您好,我在运行sas时也出现了这样的情况,就是把csv文件导入到sas中,验证某两个变量之和是否等于第三个变量,如果不等于就去掉,结果运行的时候发现把一部分相等的数据也给去掉了,不知道为什么,请问您现在解决了这种情况了吗?求指教!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 22:29