BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
jc3992
Pyrite | Level 9
%let dirdata="C:\Users\jc3992\Downloads";
libname snow "&dirdata";
/*1*/
data snow.snowfall;
proc import "&dirdata.snow.sas7bdat";
run;

Hello everyone,

I changed to SAS 9.2 from University Edition because I could not read the full length of a data set by SAS Studio,

thus I am not familiar with setting a permanent library.

I used the code above to import a data set in a sas. file

and the LOG showed this:

77   %let dirdata="C:\Users\jc3992\Downloads";
78   libname snow "&dirdata";
NOTE: Line generated by the macro variable "DIRDATA".
1     ""C:\Users\jc3992\Downloads"
      --
      49
        -
        22

      --
      49
ERROR: Libref SNOW is not assigned.
ERROR: Error in the LIBNAME statement.
NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS
             release.  Inserting white space between a quoted string and the succeeding
             identifier is recommended.

ERROR 22-7: Invalid option name C.

79   /*1*/
80   data snow.snowfall;

ERROR: Libref SNOW is not assigned.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds



NOTE: PROCEDURE IMPORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

NOTE: The SAS System stopped processing this step because of errors.
81   proc import "&dirdata.snow.sas7bdat";
NOTE: Line generated by the macro variable "DIRDATA".
1     ""C:\Users\jc3992\Downloads"snow.sas7bdat
      --
      49
      22
      76
NOTE 49-169: The meaning of an identifier after a quoted string might change in a future SAS
             release.  Inserting white space between a quoted string and the succeeding
             identifier is recommended.

ERROR 22-322: Syntax error, expecting one of the following: ;, DATAFILE, DATATABLE, DBMS,
              DEBUG, FILE, OUT, REPLACE, TABLE, _DEBUG_.

ERROR 76-322: Syntax error, statement will be ignored.

82   run;


May I ask how can I assign the libref snow?

 

Thank you!

1 ACCEPTED SOLUTION

Accepted Solutions
novinosrin
Tourmaline | Level 20

remove the quotes:

 

 

 %let dirdata=C:\Users\jc3992\Downloads;

View solution in original post

10 REPLIES 10
novinosrin
Tourmaline | Level 20

remove the quotes:

 

 

 %let dirdata=C:\Users\jc3992\Downloads;
jc3992
Pyrite | Level 9

It worked after I struggled the whole afternoon lol

Thanks so much!!

jc3992
Pyrite | Level 9
%let dirdata=C:\Users\jc3992\Downloads;
libname snow "&dirdata";
run;

/*1*/
data snow.snowfall;
set "&dirdata.Tmp4.Snow";
Year = INPUT((SUBSTR(Season, 1, length(Season)-3)),4.); 
ARRAY month (10) Sep--Total;
DO i=1 to 10;
if month(i)=. then month(i)=0;
end;
run;

Now the data set is in the Tmp4 file in my dirdata file.

I want to create a graph of the snowfalls for November December January February and March v.s. Year

The part of the data set is as below

snow.jpg

And after I ran the code,

the Log showed as below:

168  %let dirdata=C:\Users\jc3992\Downloads;
169  libname snow "&dirdata";
NOTE: Libref SNOW refers to the same physical library as TMP4.
NOTE: Libref SNOW was successfully assigned as follows:
      Engine:        V9
      Physical Name: C:\Users\jc3992\Downloads
170  run;

171  %let dirdata=C:\Users\jc3992\Downloads;
172  libname snow "&dirdata";
NOTE: Libref SNOW refers to the same physical library as TMP4.
NOTE: Libref SNOW was successfully assigned as follows:
      Engine:        V9
      Physical Name: C:\Users\jc3992\Downloads
173  run;
174
175  /*1*/
176  data snow.snowfall;
177  set "&dirdata.Tmp4.Snow";
ERROR: Extension for physical file name "C:\Users\jc3992\DownloadsTmp4.Snow" does not
       correspond to a valid member type.
178  Year = INPUT((SUBSTR(Season, 1, length(Season)-3)),4.);
179  ARRAY month (10) Sep--Total;
NOTE: The array month has the same name as a SAS-supplied or user-defined function.
      Parentheses following this name are treated as array references and not function
      references.
ERROR: Variable Sep cannot be found on the list of previously defined variables.
ERROR: Too few variables defined for the dimension(s) specified for the array month.
180  DO i=1 to 10;
181  if month(i)=. then month(i)=0;
182  end;
183  run;

NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      178:22   178:40
NOTE: Character values have been converted to numeric values at the places given by:
      (Line):(Column).
      181:4
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set SNOW.SNOWFALL may be incomplete.  When this step was stopped there were 0
         observations and 3 variables.
WARNING: Data set SNOW.SNOWFALL was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds


May I ask what did it mean by "a valid member type"?

And what can I do to "Array" command to make this work?

 

Any suggestions and hints would be much appreciated!

 

Thanks very much!

novinosrin
Tourmaline | Level 20

first off, this is wrong

data snow.snowfall;
177  set "&dirdata.Tmp4.Snow";

should be

data snow.snowfall;
177  set &dirdata..Tmp4;
 

The naming convention is libref.sasdatasetname

Your libref is snow, so it should be snow.datasetname 

jc3992
Pyrite | Level 9

Thanks very much!

 

so,

I use my university desk top again to continue,

and I encountered problem again.

(for previous months I'have used Sas Studio because I use Mac

but I got some data sets not easily access so I changed to SAS 9.2

I really need some help..)

 

The same problem again.

It is:

%let dirdata=C:\Users\jc3992\MySASData;
libname snow "&dirdata";
run;

and the LOG is as below:

 

4    %let dirdata=C:\Users\jc3992\MySASData;
5    libname snow "&dirdata";
NOTE: Library SNOW does not exist.
6    run;

I have checked the folder,

it showed it does not exist.

Would you mind helping me out with this ?

I can hardly move on with these issues >"<

Thanks!!

novinosrin
Tourmaline | Level 20

Good morning, Give me an hour or so, I have just woken up, Let me get to my college lab and post you some clear demonstrations. I do not have sas at home I'm afraid.

jc3992
Pyrite | Level 9

I succeeded!^__^

Thanks for your kind help~~

 

May I ask you what command I can use if I am going to combine data to some categories.

For instance, I have a data set listing every single years, months in every year, and quantity of snowfall for each month in each year,

and now I am going to combine these to three columns named "Year" "Month" and "Snowfall"

What would you do with this?

 

Thank you!:)

novinosrin
Tourmaline | Level 20

You need to learn the sas concepts of combining datasets. It's not just about command or statement. It's about how you approach a solution with a concept,

 

https://www.albany.edu/~msz03/epi514/notes/p121_142.pdf

 

http://www-personal.umich.edu/~kwelch/b600/2012/Combining%20SAS%20Data%20Sets.pdf

 

FraukevdRijt
Calcite | Level 5

When I want to merge the PISA data from 2015 I get the sign that 'Libref is not assigned'.

I don't know what I do wrong and tried a lot of things. 

Can somebody here help me? 

libref not assigned d.PNGlibref not assigned.PNG

novinosrin
Tourmaline | Level 20

HI @FraukevdRijt   Review your libname statement carefully. You will notice you missed to assign a libref after the keyword libname before the 'path'

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 10 replies
  • 24697 views
  • 4 likes
  • 3 in conversation