Por que minha variável de macro não resolve?

Eu tenho uma variável de macro, &myvar , mas não vai resolver quando eu tento colocá-lo em uma variável de passo de dados. Por que não e o que posso fazer para corrigir isso?

 %let myvar=Hello, world; data _null_; x='&myvar.'; put x=; run; 

As variables ​​de macro no SAS não serão resolvidas quando estiverem entre aspas simples, '&myvar' . Eles precisam estar entre aspas duplas, "&myvar" , para resolver corretamente.

Se você precisa ter aspas simples e uma variável de macro resolvida, você tem algumas opções, mas a mais simples é:

 %str(%'&myvar.%') 

O %' dentro de %str colocará um caractere de aspas simples (ou apóstrofo) na cadeia de texto por si só, sem fazer com que seja citado.

 data _null_; x="%str(%'&myvar.%')"; put x=; run; 

ou

 %let myvar2 = %str(%'&myvar.%');