我想在SAS表中用数字表示标题和性别变量。如何在SAS中执行此操作?

我想在SAS表中用数字表示标题和性别变量。如何在SAS中执行此操作?,sas,Sas,我想将标题和性别变量表示为数字。我需要添加什么代码来执行此操作 DATA test; INPUT title$ gender$ name$ age; CARDS; Mr Male Micheal 20 Mrs Female Stephanie 25 Mr Female Linda 30 Dr Male James 40 Dr Female Jane 45; run; 下面是我对这个问题的尝试。然而,有些事情是错误的,因为标题和性别变量没有改变 proc format library = Wor

我想将标题和性别变量表示为数字。我需要添加什么代码来执行此操作

DATA test;
INPUT title$ gender$ name$ age;
CARDS;
Mr Male Micheal 20
Mrs Female Stephanie 25
Mr Female Linda 30
Dr Male James 40
Dr Female Jane 45;
run;
下面是我对这个问题的尝试。然而,有些事情是错误的,因为标题和性别变量没有改变

proc format library = Work;
value $title_ 'Mr' = 1 'Mrs' = 2 'Dr' = 3;
value $gender_ 'Male' = 1 'Female' = 2;    
run;

OPTIONS FMTSEARCH = (Work);

data test;
format $title $title_;
set test;
run;

您就快到了-您只是对format语句的语法有点错误。这是您当前的格式声明:

format $title $title_;
这是一个更正的。我已经将其扩展到应用您的性别格式:

  format title $title_. gender $gender_.;
无需覆盖数据集即可应用格式,即

data mydata;
  set mydata;
  format ...;
run;
您可以通过使用proc数据集直接应用一个,而不是像上面那样编写数据步骤,例如

proc datasets lib = work;
  modify test;
  format title $title_. gender $gender_.;
  run;
quit;

您就快到了-您只是对format语句的语法有点错误。这是您当前的格式声明:

format $title $title_;
这是一个更正的。我已经将其扩展到应用您的性别格式:

  format title $title_. gender $gender_.;
无需覆盖数据集即可应用格式,即

data mydata;
  set mydata;
  format ...;
run;
您可以通过使用proc数据集直接应用一个,而不是像上面那样编写数据步骤,例如

proc datasets lib = work;
  modify test;
  format title $title_. gender $gender_.;
  run;
quit;

您可以使用字符格式来执行此操作:这是家庭作业问题吗?你知道你会遇到的所有标题和性别文本值吗?如果知道,它们是什么,你会给它们分配什么数值?在程序运行期间,数字表示是“临时”的,还是其他程序和用户需要知道数字含义的更永久的持续时间?什么样的数字?单调序列恒等式?你能用解释ascii码十六进制序列产生的十六进制数吗?@Richard不,这不是家庭作业问题。这是为了工作!我已经尝试了上面的解决方案,但还是有问题!我不知道是什么!你能给我一些建议吗?@user667489我已经尝试了上面的解决方案,但还是有问题!我不知道是什么!你能给点建议吗?这里有一个更复杂的例子:你可以用字符格式来做这个:这是家庭作业问题吗?你知道你会遇到的所有标题和性别文本值吗?如果知道,它们是什么,你会给它们分配什么数值?在程序运行期间,数字表示是“临时”的,还是其他程序和用户需要知道数字含义的更永久的持续时间?什么样的数字?单调序列恒等式?你能用解释ascii码十六进制序列产生的十六进制数吗?@Richard不,这不是家庭作业问题。这是为了工作!我已经尝试了上面的解决方案,但还是有问题!我不知道是什么!你能给我一些建议吗?@user667489我已经尝试了上面的解决方案,但还是有问题!我不知道是什么!你能给点建议吗?这里有一个更复杂的例子:谢谢你的回复!我还有最后一个问题。在我给出的例子中,只有3个不同的头衔和2个不同的性别。因此,很容易将这些可变元素重新标记为数字。但是,如果一个变量中有100多个不同的元素,是否有一种有效的方法将这些元素从1重新标记为100?是的,使用CNTLIN数据集和proc格式。请参阅本文中关于从数据集创建格式的示例8。谢谢你的回复!我还有最后一个问题。在我给出的例子中,只有3个不同的头衔和2个不同的性别。因此,很容易将这些可变元素重新标记为数字。但是,如果一个变量中有100多个不同的元素,是否有一种有效的方法将这些元素从1重新标记为100?是的,使用CNTLIN数据集和proc格式。请参阅本文中关于从数据集创建格式的示例8。