<?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 Duda sobre el funcionamiento de SAS in Forum en español</title>
    <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977188#M991</link>
    <description>&lt;P&gt;Buen día miembros&lt;BR /&gt;Tengo una duda que dejaré en unas imágenes, la primera muestra que el código se ejecuta y asigna a la macro variable el valor correcto. Sin embargo, cuando hago solo el cambio de nombre de la variable, deja de funcionar correctamente y ahora la macro variable tiene un valor distinto tal y como se muestra en la segunda imagen (las cuales están contenidas en el archivo PDF adjunto).&lt;BR /&gt;Deseo entender ¿qué es lo que sucede?&lt;BR /&gt;Gracias de antemano.&lt;/P&gt;</description>
    <pubDate>Thu, 16 Oct 2025 17:11:35 GMT</pubDate>
    <dc:creator>Roberto_BM</dc:creator>
    <dc:date>2025-10-16T17:11:35Z</dc:date>
    <item>
      <title>Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977188#M991</link>
      <description>&lt;P&gt;Buen día miembros&lt;BR /&gt;Tengo una duda que dejaré en unas imágenes, la primera muestra que el código se ejecuta y asigna a la macro variable el valor correcto. Sin embargo, cuando hago solo el cambio de nombre de la variable, deja de funcionar correctamente y ahora la macro variable tiene un valor distinto tal y como se muestra en la segunda imagen (las cuales están contenidas en el archivo PDF adjunto).&lt;BR /&gt;Deseo entender ¿qué es lo que sucede?&lt;BR /&gt;Gracias de antemano.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Oct 2025 17:11:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977188#M991</guid>
      <dc:creator>Roberto_BM</dc:creator>
      <dc:date>2025-10-16T17:11:35Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977191#M992</link>
      <description>&lt;P&gt;Macro code is resolved before the code is compiled; you cannot use DATA step variables in macro code, as they do not yet exist.&lt;/P&gt;
&lt;P&gt;Your first example "worked" because the macro variable was already created by some other means.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Pardon my posting in English, I don't speak Spanish.&lt;/P&gt;</description>
      <pubDate>Thu, 16 Oct 2025 17:58:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977191#M992</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2025-10-16T17:58:47Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977197#M993</link>
      <description>&lt;P&gt;Hola Roberto&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;En el primer paso DATA envía resultados porque la variable macro &amp;amp;valor ya tenía el valor asignado ANTES de la ejecución del paso DATA.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;La sentencia dentro del paso DATA&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;valor = today();&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No asigna un valor a la variable macro, sino que crea una variable dentro del data set "tmp" llamada "valor"&amp;nbsp; y le asigna el resultado de la ejecución de la función today().&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;En cuanto se hace el cambio del nombre de la variable dentro del paso DATA, sólo se cambia el nombre de la variable del data set de salida, sin embargo esta acción no genera la variable macro &amp;amp;fecha_hoy ni le asigna valor alguno.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Las sentencias macros como el %LET y el %PUT dentro del paso DATA se ejecutan en tiempo de compilación por el procesador de macros y posteriormente ya no se ejecuta en el compilador.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Para poder manejar los valores de las variables macros dentro del paso DATA se usan las rutinas&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Call SymPutX()&lt;/P&gt;
&lt;P&gt;Call SymGet()&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Call SymPutX() tiene la misma función que %LET, es decir, asigna un valor a una variable macro por el compilador durante la ejecución del paso DATA.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Call SymGet() sirve para obtener el valor almacenado en una variable macro durante la ejecución del paso DATA.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Por lo tanto, para manejar los valores de las variables macros dentro del paso DATA, el primer paso DATA el ejemplo que mandaste, hay que reemplazar el %LET por la rutina Call SymputX() y el %PUT hay que ponerlo fuera del paso data ya que lo ejecuta el procesador de macros:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;DATA tmp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;valor = today();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Call SymPutX( 'miMacroVariable', CatS( 'Archivo', valor ) );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;RUN;&lt;/DIV&gt;
&lt;DIV&gt;%Put La macrovariable es &amp;amp;miMacroVariable;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Con esto, si se cambia el nombre de la variable "valor" por "fecha_hoy", el paso DATA quedaría de la siguiente manera.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;DATA tmp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;fecha_hoy = today();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp;Call SymPutX( 'miMacroVariable', CatS( 'Archivo', fecha_hoy ) );&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;RUN;&lt;/DIV&gt;
&lt;DIV&gt;%Put La macrovariable es &amp;amp;miMacroVariable;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Saludos.&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 16 Oct 2025 18:45:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977197#M993</guid>
      <dc:creator>Hlm2019</dc:creator>
      <dc:date>2025-10-16T18:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977200#M994</link>
      <description>Don't worry, thank you very much, I will analyze, review and test carefully.</description>
      <pubDate>Thu, 16 Oct 2025 19:10:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977200#M994</guid>
      <dc:creator>Roberto_BM</dc:creator>
      <dc:date>2025-10-16T19:10:34Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977201#M995</link>
      <description>Muchas gracias, voy a analizarlo, revisarlo y probarlo para tenerlo siempre presente.</description>
      <pubDate>Thu, 16 Oct 2025 19:11:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977201#M995</guid>
      <dc:creator>Roberto_BM</dc:creator>
      <dc:date>2025-10-16T19:11:38Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977202#M996</link>
      <description>&lt;P&gt;Muchas gracias Hlm2019, he probado el código y funciona correctamente, pero lo más valioso es que he logrado comprender que en SAS algunas cosas se resuelven en distintos tiempos (compilación y ejecución).&lt;/P&gt;</description>
      <pubDate>Thu, 16 Oct 2025 19:21:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977202#M996</guid>
      <dc:creator>Roberto_BM</dc:creator>
      <dc:date>2025-10-16T19:21:41Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977249#M997</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/86072"&gt;@Hlm2019&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Minor correction: &lt;A href="https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/lefunctionsref/n08h8unph3lz0un1ap3kqru4iym0.htm" target="_blank" rel="noopener"&gt;SYMGET&lt;/A&gt; is not a CALL routine, but a function.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example (for&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/388050"&gt;@Roberto_BM&lt;/a&gt;)&lt;FONT face="arial,helvetica,sans-serif"&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
set sashelp.class;
mvar='age'||put(age,2.);
if not symexist(mvar) then call symputx(mvar,name);
else call symputx(mvar,catx(' ',symget(mvar),name));
run;

%put &amp;amp;=age11;
%put &amp;amp;=age12;
%put &amp;amp;=age13;
...&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 17 Oct 2025 13:02:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977249#M997</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2025-10-17T13:02:16Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977272#M998</link>
      <description>&lt;P&gt;Thanks, FreelanceReinh. I'll check out your example. You're right, since technically, a routine isn't the same as a function. Anyway, I appreciate both of you for your support.&lt;/P&gt;</description>
      <pubDate>Fri, 17 Oct 2025 15:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977272#M998</guid>
      <dc:creator>Roberto_BM</dc:creator>
      <dc:date>2025-10-17T15:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Duda sobre el funcionamiento de SAS</title>
      <link>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977287#M999</link>
      <description>&lt;P&gt;You're correct. Thanks for the correction. Regards.&lt;/P&gt;</description>
      <pubDate>Fri, 17 Oct 2025 19:10:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Forum-en-espa%C3%B1ol/Duda-sobre-el-funcionamiento-de-SAS/m-p/977287#M999</guid>
      <dc:creator>Hlm2019</dc:creator>
      <dc:date>2025-10-17T19:10:33Z</dc:date>
    </item>
  </channel>
</rss>

