转换变量类型SAS后,所有观察结果均已删除

转换变量类型SAS后,所有观察结果均已删除,sas,Sas,我有两个正在合并的数据集(称为“趋势”和“保险”),它们都有相似的变量。一个类似的变量是“种族”,除了在“趋势”数据集中,Excel将其编码为字符变量,在“保险”数据集中,Excel将其编码为数字。当然,如果这两个变量不是同一类型,我就无法合并它们,并且我尝试在Excel中的“格式”选项下将类型更改为数值。它似乎不起作用。在SAS中重新导入XLS文件后,它继续说“Race”是字符,而不是数字 因此,我尝试在SAS中进行转换,如下所示: DATA trends; new = input(Race,

我有两个正在合并的数据集(称为“趋势”和“保险”),它们都有相似的变量。一个类似的变量是“种族”,除了在“趋势”数据集中,Excel将其编码为字符变量,在“保险”数据集中,Excel将其编码为数字。当然,如果这两个变量不是同一类型,我就无法合并它们,并且我尝试在Excel中的“格式”选项下将类型更改为数值。它似乎不起作用。在SAS中重新导入XLS文件后,它继续说“Race”是字符,而不是数字

因此,我尝试在SAS中进行转换,如下所示:

DATA trends;
new = input(Race, 8.);
drop Race;
RENAME new = Race;
RUN;
这是输出

NOTE: Numeric values have been converted to character values at the places   
given by:
(Line):(Column).
66:13
NOTE: Variable Race is uninitialized.
NOTE: The data set WORK.TRENDS has 1 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
但当我处理内容数据=趋势时,我得到的结果;在新的数据集中根本没有观测值。应该有800多个观察值和20多个变量,就像我最初将XLS文件导入SAS时一样

以下是将“种族”转换为数字后PROC内容的输出:

Obs Race 
1   . 
我所有的观察结果和其他变量都发生了什么?基本上,现在缺少整个数据集“趋势”

DATA trends;
new = input(Race, 8.);
drop Race;
RENAME new = Race;
RUN;
SAS从何处获取比赛的输入数据?您需要一个
set
语句来从现有的数据集获取它,或者需要
input
infle
来从文本文件获取它

在这种情况下,听起来应该是:

DATA trends;
  set trends;
  new = input(Race, 8.);
  drop Race;
  RENAME new = Race;
RUN;

尽管我总是建议新数据集使用不同的名称,因为如果发现错误,就无法重新运行此步骤<代码>数据趋势;设定趋势会很好(显示它有数字竞争)。

除了我指出的错误之外,您应该知道可能还有更好的方法来处理这个问题(通过修改import语句和/或以不同的方式导入)。Excel在这里不一定有错(因为Excel大多没有“类型”);更可能是输入转换。请随意问一个单独的问题,或者简单地浏览有关在导入时设置类型的问题。谢谢,但我按照您的建议做了,所做的只是让SAS返回大量错误。我对试图操纵来自Excel的数据感到非常失望。我遇到的只是一个又一个问题。我正在考虑将电子表格导出到MS Access,然后导入SAS。也许这将有助于解决问题。当然,有时这确实有助于解决问题。如果您使用的是企业指南,还可以使用导入文件任务向导;这将允许您主动选择列类型。不幸的是,Excel是一个非常糟糕的数据库,但通常用于此目的。