2016-09-21 2 views
1

SAS 대학에 일부 dat 파일 (쉼표로 구분)을 가져 오려고합니다. 그러나 한 변수에 특수 문자 (예 : 프랑스어 악센트)가 포함되어 있습니다. 대부분은 replaced로 대체되지만 일부 관측치에는 몇 가지 문제가 있습니다. 문제의특수 문자가있는 SAS 입력 데이터

예 : 다음 명령을 실행

Crème Brûlée,105,280 

: 데이터의 원래의 관찰은 다음과 같습니다

:

DATA BenAndJerrys; 
    INFILE '/folders/myfolders/HW3/BenAndJerrys.dat' DLM = ',' DSD MISSOVER; 
    INPUT flavor_name :$48. portion_size calories; 
RUN; 

그것은이 문제가

flavor_name=Cr�me Br�l�e,105 portion_size=280 calories= 

에서 볼 수 있듯이 part_size의 값인 105 값이 flavor_name 값과 병합되고 칼로리 값 280이 part_size에 할당됩니다.

이 문제를 해결하고 SAS가 특수 문자로 데이터를 가져올 수있는 방법은 무엇입니까?

답변

2

파일을 읽을 때 사용할 인코딩을 SAS에 알려주십시오.

Windows 메모장 편집기를 사용하여 샘플 행을 복사하여 텍스트 파일에 저장했습니다.

%let path=C:\Downloads ; 
data _null_; 
    infile "&path\test.txt" dsd encoding=wlatin1; 
    length x1-x3 $50 ; 
    input x1-x3; 
    put (_all_) (=); 
run; 

로그에 기록됩니다.

x1=Crème Brûlée x2=105 x3=280 
NOTE: 1 record was read from the infile "C:\Downloads\test.txt". 
     The minimum record length was 20. 
     The maximum record length was 20.