楼主: astrozscore
10361 13

[学习分享] 有SAS高手曾说length语句后的点是错误用法 [推广有奖]

  • 0关注
  • 9粉丝

已卖:896份资源

博士生

73%

还不是VIP/贵宾

-

威望
0
论坛币
1544 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
7255 点
帖子
267
精华
0
在线时间
374 小时
注册时间
2012-3-5
最后登录
2013-12-21

楼主
astrozscore 发表于 2012-7-6 11:29:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,之前看过这个论坛里的SAS高手发贴说data step里面length语句后的点是一种错误理解。说很多人把length语句和format混淆都加一个点。

例如这样:

data a;
       length x 8.;
       x=1;
run;

他们说在8后面加一个点是错误的理解,但是SAS也会运行。

经过我个人测试,这个点还是起很大作用的,有点和没点的功能不一样。毕竟SAS语言不会那么不严谨。

二维码

扫码加我 拉你入群

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

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

关键词:length leng eng Data step format

回帖推荐

zhangzachary 发表于5楼  查看完整内容

数字型的时候,长度的确可以不是整数。 但是这与你所想表达的东西貌似没有关系。 在format后面能用3.999吗,在length后面能用8.1吗,length后面$8,$8.1,$8.,$8.999有区别吗? format里的.和length是不一样的。 论坛里所讨论的也应该是结尾的那个点,并且是对于字符型变量的。 为什么很多人在length后面会加点并不是出于对数字型变量非整数情况的理解,而是误解成format,这才是讨论的主题。 当然,据说,在较早的版本,可能 ...

本帖被以下文库推荐

沙发
zhangzachary 发表于 2012-7-6 12:32:24
请教不同之处~
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

藤椅
astrozscore 发表于 2012-7-6 13:30:53
zhangzachary 发表于 2012-7-6 12:32
请教不同之处~
长度不一定是整数,对于变量不是整数的值会造成影响。

板凳
astrozscore 发表于 2012-7-6 13:38:31
zhangzachary 发表于 2012-7-6 12:32
请教不同之处~
你运行一下以下的程序,比较一下结果。

data a;
        length x 3;
        x=8193;
run;

data a;
        length x 3.999999999999999;
        x=8193;
run;

data a;
        length x 3.9999999999999999999999999999;
        x=8193;
run;

报纸
zhangzachary 发表于 2012-7-6 14:25:43
astrozscore 发表于 2012-7-6 13:38
你运行一下以下的程序,比较一下结果。

data a;
数字型的时候,长度的确可以不是整数。
但是这与你所想表达的东西貌似没有关系。
在format后面能用3.999吗,在length后面能用8.1吗,length后面$8,$8.1,$8.,$8.999有区别吗?
format里的.和length是不一样的。
论坛里所讨论的也应该是结尾的那个点,并且是对于字符型变量的。
为什么很多人在length后面会加点并不是出于对数字型变量非整数情况的理解,而是误解成format,这才是讨论的主题。
当然,据说,在较早的版本,可能V6之前,length语句后是有点的,不过我相信没几个人是因为习惯的吧?~
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

地板
astrozscore 发表于 2012-7-6 14:33:06
zhangzachary 发表于 2012-7-6 14:25
数字型的时候,长度的确可以不是整数。
但是这与你所想表达的东西貌似没有关系。
在format后面能用3.99 ...
对,我就是想说length和format的.不是一个意思。你说得对,这两个不能直接比较因为.起的功能不一样。

我对那个帖子的理解是length后面的.是没有任何意义的,而且输入.完全是把length和format混淆了。根据我的测验,这个.还是有作用的,对不?

很多人用错肯定是和format搞混了,但是本身这个.还是有用的。

7
zhangzachary 发表于 2012-7-6 14:40:26
astrozscore 发表于 2012-7-6 14:33
对,我就是想说length和format的.不是一个意思。你说得对,这两个不能直接比较因为.起的功能不一样。

...
这是ok的。
寒冰凤凰 My blog: http://blog.sina.com.cn/u/1058955485

8
smilewang402 发表于 2012-7-7 06:07:40
学习了 很有用

9
bobguy 发表于 2012-7-7 21:09:09
Your understanding is wrong and claim is false.

I agree that "SAS语言不会那么不严谨" . But It is important to learn/follow the right/correct syntax in first place.

data a;
       length x 5;
       x=1;
run;

proc contents;run;

data a;
       length x 5.2;
       x=1;
run;

proc contents;run;

10
astrozscore 发表于 2012-7-7 21:28:16
bobguy 发表于 2012-7-7 21:09
Your understanding is wrong and claim is false.

I agree that "SAS语言不会那么不严谨" . But It is ...
我不明白你的code想证明什么?我知道运行length x 5或length x 5.2, x的长度都是5。

你运行我之前的code试一下就理解我是什么意思了,长度还是可以改变的。

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

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