我有两个合并的数据集(称为"趋势"和"保险"),两者都有类似的变量。其中一个类似的变量是" 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
但是当我的PROC CONTENTS DATA =趋势时,我最终得到了什么;在新数据集中根本没有观察结果。应该有超过800个观察结果和20多个变量,就像我最初将XLS文件导入SAS一样。
以下是PROC CONTENTS在转换后的输出" Race"数字:
Obs Race
1 .
我的所有观察和其他变量发生了什么变化?基本上,整个数据集"趋势"现在不见了。
答案 0 :(得分:1)
DATA trends;
new = input(Race, 8.);
drop Race;
RENAME new = Race;
RUN;
SAS从哪里获取race
的输入数据?您需要set
语句才能从现有数据集中获取,或input
和infile
从文本文件中获取它。
在这种情况下听起来应该是:
DATA trends;
set trends;
new = input(Race, 8.);
drop Race;
RENAME new = Race;
RUN;
虽然我总是向新数据集推荐一个不同的名称,但如果您发现某些错误,则无法重新运行此步骤。例如data trends_racenum; set trends;...
会很好(显示它中有数字竞赛)。