2014-11-18 3 views
2

CSV로 내보내려는 SAS 데이터가 제공되어 R을 사용하여 분석 할 수 있습니다. SAS는 사용한 적이 없지만 Efficiently convert a SAS dataset into a CSV 방법과 같은 코드를 사용하여 CSV로 변환하는 설명합니다 :SAS 데이터 세트를 CSV로 내보낼 때 열 설명을 저장합니다.

proc export data=sashelp.class outfile='c:\temp\sashelp class.csv' dbms=csv replace; run;

이 작동하지만 긴 볼 반면 나는, 나는 내가 CSV 짧은 열 이름을 전화 할게 무엇으로 끝날 것으로 나타났습니다, SAS에서 데이터를 볼 때 (예 : SAS 소프트웨어 사용) 자세한 열 설명

이 열 설명을 txt 파일에 프로그래밍 방식으로 저장하여 R 벡터로 읽을 수 있습니다. 즉, 내 CSV 헤더 (예 : 내 CSV의 첫 번째 줄)에 짧은 열 이름이 포함되어있어 행복합니다. 그러나 긴 열 설명이 포함 된 한 줄로 된 두 번째 파일도 갖고 싶습니다. 어떻게해야합니까? 내가 봤 거든 도움이 아무것도 통지하지 않았다.

예를 들어, SAS에서 볼 수있는 긴 열의 설명은 "탄자니아의 코끼리 수"와 같은 짧은 열 이름 "ElephTanz"와 같을 수 있습니다.

답변

3

SAS 사전 라이브러리를 사용하여 이러한 종류의 정보에 액세스 할 수 있습니다. 다음 코드는 표시되는 "짧은 이름"과 SAS에서 데이터를 볼 때 표시되는 더 긴 레이블이라는 두 개의 열이있는 테이블 work.column_labels을 만듭니다. 합니다 (sashelp.class 데이터가 비어있는 두 번째 열이있을 것이다이 특정 예에 열을 표시 한 것으로 발생하지 않습니다.)

proc sql; 
    create table work.column_lables as 
    select Name,label 
    from dictionary.columns 
    where libname = 'SASHELP' 
     and memname = 'CLASS'; 
quit; 

그런 다음 당신은 당신이 무엇을 유사한 코드를 사용하여 CSV로이 테이블을 내보낼 수 있습니다 이미 가지고있다.

+0

proc transpose를 살펴보면 한 열만있는 테이블 대신 원하는 행을 얻을 수 있습니다. – Reeza

+0

좋은 지적. 그러나 일단 R에있는 목록이나 벡터에 포함 시키면 어떻게 될지는 중요하지 않습니다. – Jeff

관련 문제