Help using Base SAS procedures

multiply lengths for variable (in character) while merging files

Accepted Solution Solved
Reply
Contributor mei
Contributor
Posts: 62
Accepted Solution

multiply lengths for variable (in character) while merging files

I am trying to append/merge several files and i have this warning message"

Data gompers.gompers_2001_2011;

    set gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

    run;

WARNING: Multiple lengths were specified for the variable CONAME by input data set(s). This may

         cause truncation of data.

coname is the company name.

the length for this variable is 48 for the 3 original files and 70 for 2007_2009 and 2010 file.

how do i solve this problem. do i go back to all original file and increase the length-how do we write that codes?


Accepted Solutions
Solution
‎06-22-2012 01:56 AM
Super Contributor
Posts: 349

Re: multiply lengths for variable (in character) while merging files

Hi,

You can try like this...as 2007_2009 and 2010 file has maximum length.

Data gompers.gompers_2001_2011;

set gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

   gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

   run;

or add length statement before set statement ;

Data gompers.gompers_2001_2011; length coname $ 70.;

    set gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

    run;

Thanks,

Shiva

View solution in original post


All Replies
Solution
‎06-22-2012 01:56 AM
Super Contributor
Posts: 349

Re: multiply lengths for variable (in character) while merging files

Hi,

You can try like this...as 2007_2009 and 2010 file has maximum length.

Data gompers.gompers_2001_2011;

set gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

   gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

   run;

or add length statement before set statement ;

Data gompers.gompers_2001_2011; length coname $ 70.;

    set gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

    run;

Thanks,

Shiva

Frequent Contributor
Posts: 95

Re: multiply lengths for variable (in character) while merging files

SAS assigns the length of a variable when it is seen first time.

If the order of the data sets does not matter you can place the data sets with length 70 before the data sets with lenght 48 in set statement.

Data gompers.gompers_2001_2011;

    set

gompers.gompers_2007_2009_my

gompers.gompers_2010_my

gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

;

    run;

If the order of the data sets matters in set statement you can use a length statement before set statement to specify the length of the variable coname.

Data gompers.gompers_2001_2011;

  length coname $70;

    set gompers.gompers_2000_2001

gompers.gompers_2002_2005

gompers.gompers_2006

gompers.gompers_2007_2009_my

gompers.gompers_2010_my;

    run;

☑ This topic is SOLVED.

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

Discussion stats
  • 2 replies
  • 173 views
  • 3 likes
  • 3 in conversation