当前位置: 首页 > 知识库问答 >
问题:

SAS proc导入中的变量格式

昝涛
2023-03-14

在将excel文件导入SAS时,我发现由于变量格式错误,导入操作不正确。

尝试导入的表如下所示:

ID  Barcode
1   56798274
2   56890263
3   60998217
4   SKU89731
...

我使用的代码如下:

PROC IMPORT OUT= WORK.test
        DATAFILE= "D:\Barcode.xlsx" 
        DBMS=EXCEL REPLACE;
 RANGE="Sheet1$"; 
 GETNAMES=YES;
 MIXED=NO;
 SCANTEXT=YES;
 USEDATE=YES;
 SCANTIME=YES;
 RUN;

所发生的是“条形码”列已经超过12。因此,ID=4的格式和大小写会得到一个缺少的值('.'),因为它们最初同时包含字符和数字。

因为它是不可能改变一个变量的格式在程序步骤如何才能正确地导入文件,并只使用SAS编辑器?

编辑:

另一个可以完成一半工作并且可能会带来一些启发的选项是通过数据步骤导入来动态更改变量的格式:

libname excelxls Excel "D:\Barcode.xlsx";

data want;
set excelxls.'Sheet1$'n (DBSASTYPE=(Barcode='CHAR(255)'));
run;

使用上面的代码,我强制SAS以我想要的格式(char)导入变量,但仍然会为ID=4中的值生成缺失值。

共有2个答案

杨景山
2023-03-14

你可以转换成CSV(或者xls?)文件和:

>

  • 使用guessingrows=选项增加SAS用于确定类型的行数。

    如果希望完全控制导入:复制proc import放入日志中的数据步骤代码,并粘贴到程序中。现在,您可以修改它以完全按照您的需要读取数据。

  • 姚善
    2023-03-14

    我认为你的问题是你有mixed=NO。将其更改为mixed=YES,SAS将检查观察样本,以查看变量中是否有任何非数字字符-如果找到,则将变量指定为字符。

    有关更多信息,请查看此处的链接:

     类似资料:
    • 我是SAS的新手,我想导入一个csv文件。此文件有一列包含以0开头的字符(例如,或),长度为5个字符。 当我用calc软件打开我的文件时,没有问题。但当我在SAS中导入时: 然后将该列视为数字列,因此删除第一个0。事后更改格式并不能解决我的问题。 是否有一种解决方案可以在读取csv之前指定格式导入,或者只有一种解决方案可以强制将所有列作为字符导入? 非常感谢!

    • 我正在创建一个需要导入外部类的类,但是要导入的类的选择取决于一个变量,这个变量在类实例化之前是不知道的。模块文件结构是这样的: 我的类构建为对以多种格式存储的数据集(例如,Pandas、Postgresql)进行操作,我需要根据使用的后端数据格式导入类。 我想做这样的事 但这当然不允许我在MyClass的其他地方引用TableData类。有没有合适的方法来做这件事?

    • 问题内容: 使用ES6导入时,是否可以将某些内容导入提供变量名称的模块中? 即我想根据配置中提供的值在运行时导入一些模块: 问题答案: 不与声明。并以可静态分析的方式进行定义,因此它们不能依赖于运行时信息。 您正在寻找loader API(polyfill),但是我对规范的状态尚不清楚:

    • 问题内容: 我想根据用户选择的值导入一些软件包。 默认值为: 如果用户选择,则应为: 在PHP中,我可以使用变量variable来做到这一点: 如何在Python中执行此操作? 问题答案: Python没有与PHP的“变量变量”直接等效的功能。要获取“变量变量”的值(或任何其他表达式的值),可以使用该函数。 但是,这不能在语句中使用。 可以使用该函数通过变量导入。 相当于

    • 问题内容: 我是Python和一般编程的新手(最多几个星期)。 关于Python和使用模块,我意识到可以使用导入函数。 所以不用打字 我可以说 我发现这大大简化了工作。现在,说我想在模块之间使用一堆 变量 ,并将它们全部定义在一个python模块中。如何使用上述类似方法或同样简单的方法导入这些变量。我不想使用,然后要求在所有变量前面加上。 理想的情况是以下情况: py b.py 输出: 问题答案:

    • 在Python(2.7)中,我想在一个文件中创建几个变量。然后在其他文件中使用这些变量。没有任何类或函数。只是从不同的文件中访问这些变量。 对于包含变量的文件(可能是这样的)是如何实现的? 变量。派克 然后在一个想要使用这些变量的文件中? 文件1。派克