below is the part of my code:
proc iml
%let yr = '1993';
nonMakeInd = {192}; /*Identify empty rows of the Make matrix*/
use CxC_ind;
read all var {FMB_IO} into CxC;
num_com = nrow(CxC);
print num_com;
/*-----------------------------------------------------------------------------*/
/*-----------------------------------------------------------------------------*/
/*DEFINE, LOCATE matrix positions of sets and subsets */
use Zcom;
read all var {FMBCOM} into sector_list where (stat_year = &yr);
num_sectors = nrow(SECTOR_LIST);
print num_sectors;
I have the data Zcom where it has column field called : "STAT_YEAR" I am trying to extract part of the data where STAT_YEAR = '1993'
But I see the following error in the log:
285 use Zcom;
286 read all var {FMBCOM} into sector_list where (stat_year = &yr);
ERROR: Type mismatch in WHERE clause for variable stat_year.
statement : READ at line 286 column 1
287 num_sectors = nrow(SECTOR_LIST);
288 print num_sectors;
Could not display help because connection to the remote browser failed.
Any Idea:
The SAS/IML User's guide is online, so you can view it whenever you have an internet connection.
http://support.sas.com/documentation/onlinedoc/iml/index.html#iml93
The WHERE clause is discussed in several places, including here: http://support.sas.com/documentation/cdl/en/imlug/64248/HTML/default/viewer.htm#imlug_worksasdataset...
Your error is that you defined &yr to be a character value when you wrote
%let yr = '1993';
If stat_yrear is a numerical variable, this is a "type mismatch" because you are trying to match a numerical value to a character string.
Use
%let yr = 1993;
The SAS/IML User's guide is online, so you can view it whenever you have an internet connection.
http://support.sas.com/documentation/onlinedoc/iml/index.html#iml93
The WHERE clause is discussed in several places, including here: http://support.sas.com/documentation/cdl/en/imlug/64248/HTML/default/viewer.htm#imlug_worksasdataset...
Your error is that you defined &yr to be a character value when you wrote
%let yr = '1993';
If stat_yrear is a numerical variable, this is a "type mismatch" because you are trying to match a numerical value to a character string.
Use
%let yr = 1993;
Thank you, it was very helpful.
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!
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.