我有一些去识别的EHR数据,其中包括每次医生遭遇的联系日期。这些大文件是.txt并按原样导入:
PROC IMPORT OUT = WORK.DM1
DATAFILE="T:\DM_DEID\PAT_ENC_DX.txt"
DBMS=CSV REPLACE;
GETNAMES=YES;
DATAROW=2;
RUN;
然而,Contact_Date变量作为char类型导入,信息为21美元。 (见附图)。我已经看了几种方法将它转换为日期,没有无意义的时间戳,但还没有任何工作。下面的代码让我接近,除了它只捕获第一个'天'数并留下一些单元格空白(见图2)
DATA DM1_;
SET DMI;
DATE=INPUT(SUBSTR(CONTACT_DATE,4,10),YYMMDD.);
FORMAT DATE MMDDYYD10.;
RUN;
我收到以下错误,我发现很难解读:“第66行,第6行的函数INPUT的参数无效。”
非常感谢任何帮助。如果需要,我还可以提供更多信息。感谢。
答案 0 :(得分:1)
我会使用compress函数删除空格(似乎那里有随机的一些),抓住前10个字符,然后input()
那个。
我也喜欢anydtdte.
有关让SAS决定最佳
data _null_;
contract_date = ' 2004- 12-02 00:00:00';
date = input(substr(compress(contract_date),1,10),anydtdte21.);
put date date9.;
run;
返回:
02DEC2004