Hello,
I am beginner in SAS. I was trying to import a .csv file using IMPORT command using code
PROC IMPORT DATAFILE="D:\work\octbr\problemex\sample.csv"
OUT=marks
DBMS=CSV
REPLACE;
RUN;
Its showing the error that the import file is failed.
I tried many ways to import but failed to import....
Please suggest me how to clear the error and import the data file...
Thanks in advance
Srujana
Please post a sample (first 10 lines or so) of the csv file and the actual log of the proc import with the error message.
this is my sample file data
abcd-AA-45,-0.054829956,-0.046428462,26,29,33,26,41
abcd-AA-44,0.072182266,0.075878166,22,39,34,17,37
abcd-AA-41,-0.242498969,-0.183132623,17,29,32,31,22
abcd-AA-34,0.119176859,0.184544889,26,44,33,14,39
abcd-AA-31,-0.163328092,-0.048343209,34,33,31,18,31
abcd-AA-25,-0.181906429,-0.25667866,23,24,25,22,28
abcd-AA-24,-0.197937552,-0.074703951,26,33,36,19,37
abcd-AA-22,-0.102977317,0.152645372,32,32,32,23,33
abcd-AA-13,0.187188343,-0.023572483,20,33,30,16,41
I have written the following code
PROC IMPORT DATAFILE="D:\work\octbr\problemex\sample.csv"
OUT=marks
DBMS=CSV
REPLACE;
GETNAMES=yes;
RUN;
PROC PRINT DATA=marks;
RUN;
And this is the error report generated
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IMPORT used (Total process time):
real time 0.09 seconds
user cpu time 0.03 seconds
system cpu time 0.02 seconds
memory 8928.50k
OS Memory 32004.00k
Timestamp 11/13/2014 08:57:49 AM
Step Count 7 Switch Count 49
Page Faults 0
Page Reclaims 2724
Page Swaps 0
Voluntary Context Switches 228
Involuntary Context Switches 27
Block Input Operations 0
Block Output Operations 72
ERROR: File WORK.MARKS.DATA does not exist.
65 RUN;
Sorry, gonna sound like a broken record here, but I would advise to use datastep code to read in any file. With proc import you are letting SAS guess what should be done. It should be the other way round, you, who knows the data, should tell SAS what to import. The code below gives exactly the same output, and can be manipulated:
data want;
length var1 $200.;
infile "s:\temp\rob\a.csv" dlm="," missover dsd lrecl=32767;
input var1 $ var2 var3 var4 var5 var6 var7;
run;
If that is your file (and you have not omitted the first line), then getnames=yes is, of course, wrong.
Without a line containinmg column names, you are much better off with a manually written data step.
You're better off with a data step, anyway; I strongly second RW9 here. PROC IMPORT may tolerate erroneous data that will cause ERRORs later on (like character data in a column that is expected to be numeric)
Try with this code
PROC IMPORT DATAFILE="D:\work\octbr\problemex\sample.csv"
OUT=marks
DBMS=CSV
REPLACE;
GETNAMES=NO;
GUESSINGROWS=1000;
RUN;
If your data is like your sample, you must put getnames=NO since it doesn't have a column name. Also I have added guessingrows that produce that SAS import more lines before appling a format.
what kind of SAS are you running?
E G, SAS/Studio or base SAS?
On what platform is your sas server running?
Please report the result of running
%put _automatic_ ;
In particular SYSSCP, and SYSSCPL should show if you are running in an environment that can read from "D:\work\octbr\problemex\sample.csv"
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.