楼主: orainman
7964 12

[原创博文] invalid argument to function [推广有奖]

  • 0关注
  • 0粉丝

已卖:272份资源

大专生

10%

还不是VIP/贵宾

-

威望
0
论坛币
95 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
428 点
帖子
30
精华
0
在线时间
46 小时
注册时间
2011-6-19
最后登录
2015-7-31

楼主
orainman 发表于 2011-8-21 21:14:34 |AI写论文
5论坛币
                                                             invalid argument to function.doc (24.5 KB)




关键词:function argument invalid Valid ALI function invalid

沙发
jasonscut 在职认证  发表于 2011-8-22 13:55:41
我怀疑你的时间变量datadate可能有问题,不是numerical value.

你用proc content查看一下。

北美统计金融博士

藤椅
honghejing 发表于 2011-8-22 16:00:09
你可以先把datadate转换为numeric的格式,input(substr(datadate,1,4)||'-'||substr(datadate,5,2)||'-'||(datadate,7,2),yymmdd10.);

板凳
soporaeternus 发表于 2011-8-22 16:16:27
貌似
  1. input(datadate,yymmdd8.)
复制代码
就可以

我很好奇那个date算的是什么?+4是什么意思?呵呵
Let them be hard, but never unjust

报纸
honghejing 发表于 2011-8-22 16:39:42
不好意思,习惯了yymmdd

地板
orainman 发表于 2011-8-22 23:39:00
我是初学者,不过我将datadate 的格式改了一下就可以了,比如19960731 改成31JUL1996,然后就可以了,我想问下大家,是不是month函数或者时间函数的参数要求是“31JUL1996”这种类型的,谢谢了

7
orainman 发表于 2011-8-22 23:45:06
honghejing 发表于 2011-8-22 16:00
你可以先把datadate转换为numeric的格式,input(substr(datadate,1,4)||'-'||substr(datadate,5,2)||'-'||( ...
谢谢你的建议了,我的数据本身就是数值型的,在时间函数中好像不行,用了date9.格式可以的

8
orainman 发表于 2011-8-22 23:45:44
jasonscut 发表于 2011-8-22 13:55
我怀疑你的时间变量datadate可能有问题,不是numerical value.

你用proc content查看一下。
是数值型的

9
tj0412ymy 发表于 2011-8-23 10:55:48
orainman 发表于 2011-8-22 23:39
我是初学者,不过我将datadate 的格式改了一下就可以了,比如19960731 改成31JUL1996,然后就可以了,我想问 ...
问题的根本原因在于:你将时间格式的变量(比如:19960731)以纯数值的格式储存在数据集中,当调用Month, Year这些时间函数时,这些的函数的argument本应该是时间型变量,现在却作用在纯数值的变量上(比如:BEST12.),故函数无法识别该argument,进而报错“invalid argument”。
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

10
honghejing 发表于 2011-8-23 11:01:42
orainman 发表于 2011-8-22 23:45
谢谢你的建议了,我的数据本身就是数值型的,在时间函数中好像不行,用了date9.格式可以的
你确定是19960731,而不是10000多?因为96年的转化为数值型为10000多,而不是19960731

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

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