2014-04-09 4 views
0

방금 ​​SAS를 사용하기 시작한 지 3 일 전이었습니다. ~ 50 개의 csv 파일을 1 개의 SAS 데이터 세트로 병합해야합니다.여러 csv 파일을 1 개의 SAS 파일에 병합하는 방법

50 개 CSV 파일은

일반적인 예 "REGION_ID"만 한 변수로 여러 변수를 가지고 나는이 작업을 수행하는 SAS 엔터프라이즈 가이드 드래그 앤 드롭 기능을 사용했습니다하지만 너무 수동이었고, 나에게 반 일을했다 47 개의 csv 파일을 업로드하여 1 개의 SAS 파일에 병합합니다.

누구든지 기본 SAS를 사용하여보다 지능적인 방법을 사용하고 있는지 궁금합니다.

감사의 말과 조언

감사합니다.

예 파일명 : 2011Census_B02A_AUST_short 2011Census_B02B_AUST_short 2011Census_B03_AUST_short 2011Census_B01_AUST_short. . 2011Census_xx_AUST_short

업로드하고 병합 할 50 개 이상의 csv 파일이 있습니다.

csv 파일의 변수 수와 유형은 각 csv 파일마다 다릅니다. 그러나 모든 CSV 파일이 1 개 공통 변수가 =

예 변수 "REGION_ID" REGION_ID, Tot_P_M, Tot_P_F, Tot_P_P, Age_0_4_yr_F 등 ...

+1

처음에는 PROC IMPORT 문을 사용하여 CSV 파일의 데이터를 SAS 데이터 세트로 가져와야합니다. 그런 다음 MERGE 문을 사용하여 병합하십시오. –

+0

파일 이름은 무엇입니까? 유사하다면 SAS MACRO를 사용할 수도 있습니다 – mjsqu

+0

예제 파일 이름과 파일 내용을 제공해 주시면보다 잘 도와 드리겠습니다. @andrey_sz 한 단계에서 여러 개의 CSV를 단일 SAS 데이터 세트로 가져올 수 있습니다. 따라서 각 데이터 집합을 자체 데이터 집합으로 가져 오는 것은 유효한 접근 방법이지만 필요한 것은 아닙니다. –

답변

0

먼저, 우리가 가져올 수있는 자동화 된 방법이 필요합니다. 아래의 간단한 매크로는 파일의 위치와 파일 이름을 입력으로 가져와 데이터 세트를 작업 디렉토리로 출력합니다. (SAS 코드를 50 번 생성하기 위해 Excel에서 concatenate 함수를 사용했습니다.) 또한 나중에 병합을 쉽게하기 위해이를 정렬합니다.

%macro importcsv(location=,filename=); 
proc import datafile="&location./&filename..csv" 
    out=&filename. 
    dbms=csv 
    replace; 
    getnames=yes; 
run; 
proc sort data= &filename.; by region_id; run; 
%mend; 
%importcsv(location = C:/Desktop,filename = 2011Census_B01_AUST_short) 
. 
. 
. 

그런 다음 모든 데이터를 다시 병합하면됩니다. 나는 나가 50 번 나가고 싶지 않았기 때문에 타원을 덧붙였다.

data merged; 
merge dataseta datasetb datasetc ... datasetax; 
by region_id; 
run; 

희망이 도움이됩니다.

관련 문제