全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5802 7
2012-04-24
为什么sas程序中,输出a 不等于b的结果,运行后发现:a和b相等的情况,也被输出?
(a和b均为数值型变量)
data m2;
set  m1;
if a ne b then output;
run;

谢谢诸位!
二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-24 10:37:06
我这里没问题呀,把你的代码都贴出来
二维码

扫码加我 拉你入群

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

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

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

 马上下载

二维码

扫码加我 拉你入群

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

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

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;

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

扫码加我 拉你入群

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

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

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;
二维码

扫码加我 拉你入群

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

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

2012-4-24 15:54:07
chendonghui1987 发表于 2012-4-24 15:35
我怎么没有你的情况,你的p数据集是怎么进入程序的,是直接导入的吗

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

扫码加我 拉你入群

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

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

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

说点什么

分享

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