2016-10-05 5 views
0

SAS에서 다음 작업을 수행합니다. Ggiven은 SAS에서 가져온 Excel 파일입니다. 한 열 "looking_date"에서 날짜 나에 관심이 발생하는 반면에서주어진 디렉토리의 모든 파일 이름을 읽고 SAS를 사용하여 패턴을 찾습니다.

enter image description here

디렉토리가 있습니다. ("C : \ MYWORK \") 많은 파일을 포함. enter image description here

이 디렉토리에있는 모든 파일의 이름에는 날짜와 다른 부분이 포함될 수 있습니다.

그래서 나는 알고리즘 형태로 시도 : (패턴 매칭의 종류) 날짜가있는 경우 : 열 "looking_date"모든 날짜 디렉토리에

  • 확인 "\ MYWORK \ C"에 대한

    1. 모습을 "looking_date는"하나 개의 파일의 이름에서 발생에서 다음 이름 나는 위의 두 단계를 구현하는 방법을 몰라

    으로 날짜를주는 파일을 가져옵니다. 처음에는이 디렉토리에서 모든 파일의 이름을 읽었을 것이라고 생각했지만 아직 패턴 이름과 관련된 문제가 있습니다! 난 그냥이 같은 data step 사용할 수있는 운영 시스템의 디렉토리 읽으려면

  • +0

    귀하의 요구 사항 패턴 점검을위한 NT가 명확하지 않습니다. 또한 시도한 것을 게시하십시오. – Reeza

    답변

    1

    을 시작할 수 있도록 모든 힌트 감사 :

    %let path_to_catalog=C:\myWork; 
    
    data files; 
        /* define a directory */ 
        rc = filename("mydir","&path."); 
        /* open the directory */ 
        did = dopen("mydir"); 
        /* check if it's opened */ 
        if did > 0 then do; 
         /* itereate over objects in the directory */ 
         do n = 1 to dnum(did); 
          /* read name of file */ 
          filename = dread(did, n); 
          /* output files with *.DAT extension */ 
          if scan(upcase(filename), -1, '.') = 'DAT' then 
           output; 
         end; 
        end; 
        /* close the directory */ 
        rc = dclose(did); 
    
        drop rc did; 
    run; 
    

    이 파일을 엑셀에서 날짜를 읽을을

    libname exc_lib pcfiles "path_to_execel"; 
    proc sql; 
        select distinct input(looking_date, ddmmyy8.) 
        into :dates separated by ',' 
        from exc_lib.'sheet1$'n; 
    quit; 
    

    파일에 엑셀 파일의 날짜가 포함되어 있는지 확인하십시오.

    +0

    첫 번째 부분에서 빈 테이블을 가져 오는 이유는 무엇입니까? 유일한 차이점은 다음과 같습니다. % let path_to_catalog = \\ vol1 \ statist_prod \ Datenbank_ZIK \ Archiv; 데이터 파일; /* 디렉토리를 정의 */ rc = 파일 이름 ("Archiv", "& \\ vol1 \ statist_prod \ Datenbank_ZIK \"); /* 디렉토리 열기 */ did = dopen ("Archiv"); /* 열 었는지 확인하십시오. */ – maniA

    +0

    경로 만'% let' 문에 입력하십시오. '% let path_to_catalog = \\ vol1 \ statist_prod \ Datenbank_ZIK;' –

    +0

    로버트, 나는 빈 테이블을 얻었지만 코드가 루프에 들어 가지 않으면 '0'이 아닌 부분을 검사했다. 그것이 내가 생각하는 문제이다. 올바른 경로로 보이는지 어떻게 확인할 수 있습니까? – maniA

    관련 문제