Statistical programming, matrix languages, and more

Error in assiging a variable in IML

Accepted Solution Solved
Reply
Contributor
Posts: 38
Accepted Solution

Error in assiging a variable in IML

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:


Accepted Solutions
Solution
‎07-03-2012 10:52 AM
SAS Super FREQ
Posts: 3,619

Re: Error in assiging a variable in IML

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;

View solution in original post


All Replies
Solution
‎07-03-2012 10:52 AM
SAS Super FREQ
Posts: 3,619

Re: Error in assiging a variable in IML

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;

Contributor
Posts: 38

Re: Error in assiging a variable in IML

Thank you, it was very helpful.

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 497 views
  • 0 likes
  • 2 in conversation