2017-09-17 77 views
-1

我試圖使用數據步驟將SAS數據集導入SAS。它是製表符分隔的。這是我的代碼到目前爲止。當我運行數據時,它會運行,但輸出數據看起來都是錯誤的。有一個更好的方法嗎?使用數據步驟將文件導入到SAS

data medicare; 
    infile '/folders/myfolders/sasuser.v94/medicare.sas' dlm='09'X; 
    input NPI NPPES_CREDENTIALS $ NPPES_PROVIDER_GENDER $ NPPES_ENTITY_CODE $ NPPES_PROVIDER_ZIP $ NPPES_PROVIDER_STATE $ PROVIDER_TYPE $ MEDICARE_PARTICIPATION_INDICATOR $ PLACE_OF_SERVICE $ HCPCS_CODE $ HCPCS_DRUG_INDICATOR $ LINE_SRVC_CNT BENE_UNIQUE_CNT BENE_DAY_SRVC_CNT AVERAGE_MEDICARE_ALLOWED_AMT STDEV_MEDICARE_ALLOWED_AMT AVERAGE_SUBMITTED_CHRG_AMT STDEV_SUBMITTED_CHRG_AMT AVERAGE_MEDICARE_PAYMENT_AMT sSTDEV_MEDICARE_PAYMENT_AMT; 
run; 
+0

.sas文件是一個程序,它是一個文本文件,但僅僅保存數據是非常不尋常的。該擴展通常用於SAS程序。 SAS數據集具有sas7bdat的擴展名。 – Reeza

+1

請發佈您嘗試導入的數據的示例。隨意用虛擬值替換任何敏感信息。 – user667489

+3

你必須用'length'語句初始化你的變量。如果您沒有,並且製表符分隔的文件中的某些字段長度超過8個字符,則它們將被截斷。另外,根據文件內容的不同,您可能需要在'infile'語句中使用'dsd'和/或'missover'選項。 – user2877959

回答

1

如果你正在尋找一個初學者友好的方式,你可以先運行PROC進口。 SAS將猜測正確的數據類型,長度等。這裏是一個例子:

filename imp "C:\Users\&sysuserid.\Documents\xxx.txt" encoding="cp1252" TERMSTR=CRLF; 

proc import datafile=imp 
out=imported_table 
dbms=dlm 
replace; 
delimiter='09'x; 
getnames=yes; 
guessingrows = 1000000; 
run; 

然後,數據碼步驟SAS打印複製到日誌並對其進行更新(如果需要)。