문제

SAS 데이터 테이블을 플랫 파일로 변환해야합니다 (또는 이진 파일과 달리 한 번 호출 된 "ASCII 파일"). 각각의 원래 SAS 테이블에 대해 단 하나의 플랫 파일 만. 도전적인 것은 플랫 파일에 원래 SAS 테이블의 구조 정보를 포함하기를 원한다는 것입니다.

  • 변수/열 이름
  • 변수/열 레이블
  • 변수/열 유형
  • 변수/열 길이
  • 변수/열 형식
  • 변수/열 정보

추가 정보:

  • 작은 데이터 만 변환하면됩니다 (<100 OBS).
  • 성능은 문제가 아닙니다 (합리적인 한도 내).
  • 플랫 파일은 원래 SAS 테이블을 재현하기위한 기초를 형성해야합니다. 파일을 데이터 또는 Proc 단계의 테이블로 직접 사용할 필요가 없습니다.

표준 SAS 테이블, 전송 파일, Xport 파일 등은 모두 바이너리 형식 파일이며 SAS 및 CSV 파일의 표준 XML 테이블 형식은 테이블 구조를 보존하지 않습니다. 따라서 분명히 이러한 옵션은 도움이되지 않습니다.

내 최선의 선택은 무엇입니까?

도움이 되었습니까?

해결책

나는 쉬운 해결책을 모른다.

혹시:

  1. Proc Export를 사용하여 데이터가 포함 된 CSV 파일을 생성하십시오.
  2. ODS가있는 Proc 데이터 세트를 사용하여 이름, 유형 등이있는 데이터 세트를 생성하십시오.
  3. 이 데이터 세트에 대해 다른 CSV 파일을 생성합니다.

이제 테이블에 대한 ASCII 설명이 있습니다 (두 개의 CSV 파일에 퍼짐). 프로세스를 뒤집는 것은 더 까다로울 것입니다. 기본적으로 설명 데이터 세트에서 읽은 다음 루프에서 통화 증상을 사용하여 정보가 포함 된 매크로 변수를 생성 한 다음 매크로 변수를 사용하여 CSV 파일의 Proc Import를 작성하십시오.

다른 팁

  1. 테이블을 텍스트로 내보내는 코드를 작성하십시오 (간단합니다. 단지 Google 또는 사본이있는 경우 'The Little Sas Book'을보십시오).

  2. 그런 다음 SAS가 SAS 데이터 세트에 대한 정보 (메타 데이터)를 저장하는 Sashelp.vcolumn의 '메타'정보를 추가하십시오. SAS 테이블 자체 이므로이 테이블이 설명하는 실제 열과 결합하기 위해 Proc SQL Union 작업을 수행 할 수 있습니다 (열에 대한 메타 데이터가 열이 아닌 행에 있으므로 전환 유형 조작을 수행해야합니다. ).

텍스트 파일에서 메타 데이터를보고 싶은 방법에 대해 완전히 구체적이지 않으므로 내가 갈 수있는 한 멀리 떨어져 있습니다.

Proc SQL의 설명 구문은 길이, 유형, 형식, 인덱스 등을 포함하여 메타 데이터 부분을 얻는 데 유용 할 수 있습니다.

암호:

proc sql;
describe table sashelp.class;
quit;

통나무:

NOTE: SQL table SASHELP.CLASS was created like:

create table SASHELP.CLASS( bufsize=4096 )
  (
   Name char(8),
   Sex char(1),
   Age num,
   Height num,
   Weight num
  );

SAS 9.2를 사용하면 데이터 세트에서 XML 파일을 만들 수 있으며 XML에는 형식, 레이블 등과 같은 변수/열 메타 데이터가 포함되어 있습니다 ... SAS 9.2 XML LibName 엔진의 섹션 : 사용자 안내서 "XML 사용" 운영 환경에서 SAS 데이터 세트를 전송하는 엔진. 그것에 대한 링크가 여기에 있습니다.

http://support.sas.com/documentation/cdl/en/engxml/61740/html/default/a002594382.htm

다음은 XML92 LibName 엔진과 Proc Copy를 사용하여 XML을 생성하는 매뉴얼의 코드 섹션입니다.

libname myfiles 'SAS-library';
libname trans xml92 'XML-document' xmltype=export;
proc copy in=myfiles out=trans;
   select class;
run;

SAS 9.1.3에서는 동일한 작업을 얻으려면 사용자 정의 태그를 만들어야 할 수도 있습니다. SAS 기술 지원 (support@sas.com)은 도움을 줄 수 있습니다.

BTW- 왜 이렇게 해야하는지 말하지 않았습니다. 이 경우, 정당한 이유가 없습니다 (권력을 가진 사람과 같은 강력한 이유가있을 수 있습니다. 좋은 이유).

그렇게해야 할 엄청나게 강한 이유가 없다면 각 파일에서 메타 데이터와 데이터를 병합한다는 아이디어를 포기했습니다. 데이터 세트 A에 대한 메타 데이터를 Metadata_A라는 파일로 내보내는 중입니다. 이로 인해 파일이 페어링됩니다. AA 데이터베이스 프로그램 또는 통계 프로그램에서 해당 파일을 사용하려는 사람은 분명하게 표지 된 메타 데이터 파일을 가지고 있습니다.

SAS의 데이터 만 사용하려는 경우 Proc Copy를 사용하여 전송 파일을 만들 수 있습니다.

http://www.usc.edu/isd/doc/statistics/sas/sastransport/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top