【发布时间】:2017-02-21 19:47:36
【问题描述】:
请多多包涵,我会尽可能清楚地解决我的问题。
我正在尝试合并两个变量,但我收到一条错误消息,提示“无效的数字数据,DateLastContact='06/30/2005',在第 1036 行第 4 列。”此消息重复多次观察。
我正在导入一个包含两个日期列的 excel 文件。 SAS 将其中一列读取为数字,另一列读取为字符 (DateLastContact)。我试图在 SAS 和 excel 中将 DateLastContact 更改为数字,当我尝试合并时它仍然返回无效的数字数据错误。这是我的代码:
PROC IMPORT DATAFILE = "C:\Users\bennetde\Documents\SAS\BCcombined3.xls"
DBMS = XLS OUT = SASBC REPLACE;
RUN;
proc contents data = SASBC OUT = Check;
RUN;
PROC PRINT DATA = Check;
RUN;
PROC CONTENTS 返回:
DateLastContact $ 30 0 $ 30
DateLastFollowup_ContactOrDeath MMDDYY 10 0 0
所以我在 SAS 中尝试了:
DATA SASBC;
SET SASBC;
char_DateLastContact = input(DateLastContact, MMDDYY10.);
RUN;
但它不起作用。我也试过:“char_DateLastContact = input(DateLastContact, 12.);
这是我的代码:
PROC IMPORT DATAFILE = "C:\Users\bennetde\Documents\SAS\BCcombined3.xls"
DBMS = XLS OUT = SASBC REPLACE;
RUN;
DATA SASBC;
SET SASBC;
drop DateLastContact DateLastFollowup_years;
if DateLastContact = . then char_DateLastContact =
put(DateLastFollowup_years, 20.);
else char_DateLastContact = DateLastContact;
RUN;
proc print data = SASBC;
RUN;
以下是尝试将变量从数字更改为字符后的错误消息示例:
1008 DATA SASBC;
1009 SET SASBC;
1010 char_DateLastContact = input(DateLastContact, MMDDYY10.);
1011 format DateLastContact;
1012 RUN;
NOTE: Invalid argument to function INPUT at line 1010 column 24.
(I can't give you the lines after this unless I change patient info, but
this error message repeats for several observations.)
这是原来的错误:
NOTE: Invalid numeric data, DateLastContact='09/21/2007' , at line 968
column 4
任何帮助将不胜感激。
【问题讨论】:
标签: sas