Hi all - I am attempting to run some code that seems to run fine on my colleague's computer. We are both using SAS 9.4 on Windows 7. 64 bit desktop SAS.
It occurs when using proc geocode. The log says that a particular variable length is 1136 (it's not, when I look at the dataset properties, it shows the length is 1), then that the system stopped processing because of insufficient memory.
The machine has 16gb of memory, Windows 7 shows about 9gb free, and the memory details are below via the fullstimer option. One thing I'm not clear on is whether "memory 1587.15k OS Memory 30956.00k"
indicates that there may be an actual memory problem.
Can anyone suggest something to try? Though I know the "cnty_name_mod" variable only has a length of 1, I tried deleting it from the dataset (it was the first column/variable in the dataset) and the next time I ran it, it simply said the same thing (except this time it claimed the length of that other variable was 1128) about another variable which was then the first one in the dataset, and still only had a real length of 1.
Thank you for any ideas.
-------
Here is the log from the failed step:
-------
1512 proc geocode method=street data=ADDRESS out=ADDRESS_GEOCODED
1513 lookupstreet=lookup.usm
1514 attribute_var=(tract countyfp);
1515 run;
ERROR: The length of variable "cnty_name_mod" in dataset WORK.ADDRESS is 1136.
This is greater than the maximum allowed length, 1000.
ERROR: The SAS System stopped processing this step because of insufficient memory.
WARNING: The data set WORK.ADDRESS_GEOCODED may be incomplete. When this step was stopped there were 0 observations and 0
variables.
WARNING: Data set WORK.ADDRESS_GEOCODED was not replaced because this step was stopped.
NOTE: PROCEDURE GEOCODE used (Total process time):
real time 0.01 seconds
user cpu time 0.00 seconds
system cpu time 0.01 seconds
memory 1587.15k
OS Memory 30956.00k
Timestamp 09/07/2018 02:03:35 PM
Step Count 66 Switch Count 0
Syntax reference indicates the variable list for ATTRIBUTEVAR should be comma delimited. I don't think that is the issue but it never hurts to check.
Also when you checked the data set properties was it the one in the correct library (work on assumes) and now did you check? Proc contents, the SAS explorer and columns information, viewtable?
I might try using the dataset option OBS= to reduce the number of records to process in your data set if memory is an issue.
proc geocode method=street data=ADDRESS (obs=10) out=ADDRESS_GEOCODED.
Even though the error message is for a certain variable it actually applies to the total record length (sum of all variable lengths).
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: