SAS PROC 导入分组变量

SAS PROC IMPORT GROUPED VARIABLES

在使用制表符分隔的 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;



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

因为您指定了制表符分隔,所以 header 行中的 space 被视为名为 Name Gender Age 的列的一部分。因为 SAS 列名中不允许使用 space(默认设置),所以 space 被转换为下划线。这就是为什么你最终得到 Name__Gender___Age

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

如果数据文件混合使用 space 和制表符定界,您需要编辑数据文件以保持一致。

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

只需编写您自己的数据步骤即可读取文件(对于文本文件您应该这样做)。

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

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