Sas 如何创建一个属于另一个变量的变量?

Sas 如何创建一个属于另一个变量的变量?,sas,Sas,我想创建一个变量,它只是另一个变量的一部分。我将新变量设置为与原始变量相等,然后将其格式化为我想要的格式,但它仍然保留整个原始变量的值。这是我的密码: DATA Names; INFILE "......." firstobs=7; INPUT Name $ Rank :COMMA6. @@; Rank=-Rank; FirstTwo = Name; Format FirstTwo $2.; RUN; 我想让FirstTwo变量只等于名称的前两个字母。按照我的方法

我想创建一个变量,它只是另一个变量的一部分。我将新变量设置为与原始变量相等,然后将其格式化为我想要的格式,但它仍然保留整个原始变量的值。这是我的密码:

DATA Names;
   INFILE "......." firstobs=7;
   INPUT Name $ Rank :COMMA6. @@;
   Rank=-Rank;
   FirstTwo = Name;
   Format FirstTwo $2.;
RUN;

我想让FirstTwo变量只等于名称的前两个字母。按照我的方法,它不仅接受前两个字母,而且将变量的格式设置为只有两个字母。这对我没有帮助,因为稍后我想按FirstTwo排序,但它仍然按名称排序,因为FirstTwo只是名称的一种格式。有没有办法使FirstTwo仅等于名称的前两个字母,而不仅仅是前两个字母的格式?

请注意,您的赋值语句是
FirstTwo=Name。这就是为什么变量FirstTwo的值与Name相同。您需要更改赋值语句。尝试
FirstTwo=put(Name,$2.)

或者,您可以使用

length firstTwo $2;
firstTwo=Name;

重要的是,长度语句出现在作业之前。

哇,我真不敢相信我忘记了put()。谢谢