SAS PROC导入分组变量



使用制表符分隔的txt文件进行proc导入时,如何将变量保持在单独的列中?只创建了一个名为Name__Gender__Age的变量。是否只有数据步骤才可能?

这是代码


proc import datafile= '/folders/myfolders/practice data/IMPORT DATA/class.txt'  
out=new
dbms=tab
replace;
delimiter='09'x; 
run;

您告诉PROC IMPORT,您的文本文件在字段之间有制表符。从它创建的变量的名称来看,很可能文件的字段之间只有空格。以及多个空格,这样当使用固定宽度的字体查看时,线条看起来整齐对齐。

只需编写自己的数据步骤来读取文件(对于文本文件,无论如何都应该这样做(。

data mew;
infile '/folders/myfolders/practice data/IMPORT DATA/class.txt' firstobs=2 truncover;
length Name $30 Gender $6 Age 8 ;
input name gender age;
run;

如果NAME或GENDER中缺少未作为句点输入的值,那么您可能希望使用格式化或列模式输入来读取它,而不是使用上面的简单列表模式输入样式。

数据文件似乎有空格分隔符,而不是制表符,这与您的预期相反。

因为指定了制表符分隔,所以标题行中的空格被视为名为Name Gender Age的列的一部分。由于SAS列名中不允许使用空格(默认设置(,因此将空格转换为下划线。这就是你最终使用Name__Gender___Age的原因

将分隔符更改为空格,您应该可以导入。

如果数据文件混合了空格和制表符分隔,则需要编辑数据文件以保持一致。

相关内容

  • 没有找到相关文章

最新更新