<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Merge error in SAS News and Q&amp;A</title>
    <link>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/674034#M7</link>
    <description>&lt;P&gt;안녕하세요&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;merge문은&amp;nbsp;&lt;SPAN&gt;컬럼명이 같은 변수가 나오면, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;length는 처음 데이터셋의 것을 따라가고,&amp;nbsp;컬럼값은 마지막 데이터셋의 값을 따라갑니다.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data ex1;
input id score $3.;
datalines;
1 160
2 170
3 180
;&lt;BR /&gt;
data ex2;
input id score $4.;
datalines;
1 1601
2 1701
3 1801
;&lt;BR /&gt;
data merge1;
merge ex1 ex2;
by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;위의 코드는&amp;nbsp;length는 ex1(score value: 160,170,180; length는 3자리)을 따라가고,&lt;BR /&gt;컬럼값은 마지막 데이터셋의 값 ex2(score value: 1601,1701,1801 4자리)를 따라갑니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1601,1701,1801의 값이 length값이 3자리로 지정됨에 따라 잘리게 됩니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;해결방법&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data merge2
length score $4.;
merge ex1 ex2;
by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;merge code에 length를 지정합니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 03 Aug 2020 01:40:41 GMT</pubDate>
    <dc:creator>AmeeKang</dc:creator>
    <dc:date>2020-08-03T01:40:41Z</dc:date>
    <item>
      <title>Merge error</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/673638#M5</link>
      <description>&lt;P&gt;I have merge error like below:&lt;/P&gt;&lt;P&gt;the contents(texture format) become shorter than original after i merged 2 different tables, even I've tried both function of 'merge' and 'left join' but result is same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;안녕하세요, 테이블 두 개를 merge 하고 나면 문자열 값이 일제히 짧아집니다, 이렇게 값이 짧아지는 이유가 무엇이며 원본 그대로 merge 하려면 어떡해야 하나요?&lt;/P&gt;</description>
      <pubDate>Tue, 09 Nov 2021 16:10:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/673638#M5</guid>
      <dc:creator>hwang_000</dc:creator>
      <dc:date>2021-11-09T16:10:22Z</dc:date>
    </item>
    <item>
      <title>Re: Merge error</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/673761#M6</link>
      <description>&lt;P&gt;Order of operations in MERGE affect length/values of variables with the same name.&lt;/P&gt;
&lt;P&gt;Please see this code:&lt;/P&gt;
&lt;PRE&gt;data example1;
input id text1 :$15.;
datalines;
1 abcdefghijklmn
2 somethingelse
;

data example2;
   input id text1:$5. word $;
datalines;
1 abcde zzzz
2 some  yyyy
;

data merge1;
  merge example1
        example2
  ;
  by id;
run;

data merge2;
  merge example2
        example1
  ;
  by id;
run;

proc contents data=merge1;
run;
proc contents data=merge2;
run;&lt;/PRE&gt;
&lt;P&gt;The first data set encountered in&amp;nbsp; a Merge statement sets the LENGTH of common named variables.&lt;/P&gt;
&lt;P&gt;The last&amp;nbsp; encountered data set in a Merge statement sets the Value of common named variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So in Merge1 , the Length of the Text1 variable is 15 but the value comes from example2.&lt;/P&gt;
&lt;P&gt;In Merge2 the length of Text1 comes from Example2 so the value from Example1 gets truncated because it cannot fit.&lt;/P&gt;
&lt;P&gt;One fix might be to set the length of the variable before the Merge statement.&lt;/P&gt;
&lt;PRE&gt;data merge3;
  length text1 $ 15;
  merge example2
        example1
  ;
  by id;
run;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 31 Jul 2020 15:40:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/673761#M6</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-07-31T15:40:23Z</dc:date>
    </item>
    <item>
      <title>Re: Merge error</title>
      <link>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/674034#M7</link>
      <description>&lt;P&gt;안녕하세요&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;merge문은&amp;nbsp;&lt;SPAN&gt;컬럼명이 같은 변수가 나오면, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;length는 처음 데이터셋의 것을 따라가고,&amp;nbsp;컬럼값은 마지막 데이터셋의 값을 따라갑니다.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data ex1;
input id score $3.;
datalines;
1 160
2 170
3 180
;&lt;BR /&gt;
data ex2;
input id score $4.;
datalines;
1 1601
2 1701
3 1801
;&lt;BR /&gt;
data merge1;
merge ex1 ex2;
by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;위의 코드는&amp;nbsp;length는 ex1(score value: 160,170,180; length는 3자리)을 따라가고,&lt;BR /&gt;컬럼값은 마지막 데이터셋의 값 ex2(score value: 1601,1701,1801 4자리)를 따라갑니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1601,1701,1801의 값이 length값이 3자리로 지정됨에 따라 잘리게 됩니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;해결방법&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data merge2
length score $4.;
merge ex1 ex2;
by id;
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;merge code에 length를 지정합니다.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Aug 2020 01:40:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-News-and-Q-A/Merge-error/m-p/674034#M7</guid>
      <dc:creator>AmeeKang</dc:creator>
      <dc:date>2020-08-03T01:40:41Z</dc:date>
    </item>
  </channel>
</rss>

