2017-12-29 22 views
0
나는 다음과 같은 형식을 취 날짜 형식 정의 할

: 12JAN2010SAS 변경 날짜 형식

나는이 코드를 사용하여 시도 :

/* partie B question 2*/ 
    data projet.Ophtalmo_new; 
    set projet.Ophtalmo_new (RENAME=(date_diagnostic=date_dia)) (RENAME= 
(date_examen=date_exa)); 
    date_diagnostic = input (date_dia, DDMMYY10.); 
    date_examen = input (date_exa, DDMMYY10.); 
    format date_diagnostic date_examen date9.; 
    run; 

를하지만 나에게 다음과 같은 구문 오류 보냅니다

ERROR 22-322: Syntax error, expecting one of the following: un nom, une chaîne 
entre guillemets, ;, 
      CUROBS, END, INDSNAME, KEY, KEYRESET, KEYS, NOBS, OPEN, POINT, 
_DATA_, _LAST_, _NULL_. 

저는 아직 초보자이며 제대로 작동하지 못해 도움을 주실 수 있기를 바랍니다. 감사합니다.

답변

0

나는이 문제가 RENAME 성명이라고 믿습니다. 한 번만 부를 수 있습니다.

변경이이에

set projet.Ophtalmo_new (RENAME=(date_diagnostic=date_dia)) (RENAME= 
(date_examen=date_exa)); 

: 데이터 옵션을 설정하기위한

set projet.Ophtalmo_new (RENAME=(date_diagnostic=date_dia date_examen=date_exa)); 
1

구문은 하나의 괄호 식이다.

rename=(old-name-1=new-name-1 old-name-2=new-name-2 ...) 

을 당신이 당신이있는 상태이기 때문에 그래서 올바른 set 문이

set projet.Ophtalmo_new (RENAME=(date_diagnostic=date_dia date_examen=date_exa)); 

를 다음과 같습니다

data-set-name (... options ... rename=(...)); 

RENAME 옵션의 구문은 다음과 같은 경우 : rename 옵션에 맞아야 초급 나는이 섹션을 추가했다.

표시되는 코드는 원래 date_diagnosticdate_examen이라는 변수의 입력을 나타냅니다. 이러한 변수가 실제로 시작될 문자 변수 인 경우 입력을 문자에서 SAS 날짜 (단순히 의미가있는 숫자 임)로 변환해야합니다. 그러나 변수가 원하는 SAS 데이터 형식과 다른 경우에는 변수 형식을 업데이트하거나 PROC 단계에서 사용할 형식을 변경하려면 FORMAT 문을 사용해야합니다.

data have; 
    x = '01-jan-2017'd; 
    format x ddmmyy10.; 
run; 

* demonstrate that the permanent format of x is ddmmyy10.; 
data _null_; 
    put x=; 
run; 

* demonstrate temporary formatting of variable during step; 
data _null_; 
    set have; 
    format x date9.; * modify the format temporarily during execution of data _null_; 
    put x=; 
run; 

* permanently change format of variable; 
* only the dataset metadata (or header data) changes, the entire data set is NOT rewritten; 
proc datasets nolist lib=work; 
    modify have; 
    format x date9.; 
run; 

* demonstrate that the permanent format of x has changed to date9.; 
data _null_; 
    set have; 
    put x=; 
run; 
0

날짜를 바꾸고 INPUT 문에서 해당 변수를 사용할 수 없습니다. 이름이 변경되어 더 이상 존재하지 않으므로 INPUT 함수에서 date_dia에 액세스하려고하면 최악의 경우 모든 누락 값이 발생합니다.

DATA 및 SET 문에 동일한 데이터 세트 이름을 사용하는 표기법을 사용하지 마십시오. 즉,이 단계를 실행하면 원래 데이터가 더 이상 존재하지 않습니다. 따라서 코드를 수정하기 전에 여러 단계를 백업하고 원본 데이터를 먼저 다시 만들어야합니다. 일반적으로 이것은 오류를 진단하고 수정하기가 어렵습니다. 코드를 수정하더라도 원본 데이터가 잘못되어 여전히 오류가 있다고 생각하기 때문입니다.

그래서, 변경 : 1. 데이터 문에서 출력 데이터 세트의 이름을 변경하십시오. 2. RENAME 데이터 세트 옵션을 제거하십시오. 3. DROP 문을 추가하여 더 이상 필요없는 변수를 제거하십시오.

/* partie B question 2*/ 
data projet.Ophtalmo2; 
set projet.Ophtalmo_new; 

date_diagnostic = input (date_dia, DDMMYY10.); 
date_examen = input (date_exa, DDMMYY10.); 
format date_diagnostic date_examen date9.; 

drop date_dia date_exa; 
run;