SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

2023-12-25

问题:使用 PROC IMPORT 时如何定义从 .xlsx 文件导入的变量的变量类型?


My work

我正在使用 SAS v9.4。据我所知,它是普通的 SAS。我没有 SAS/ACCESS 等。

我的数据如下所示:

ID1        ID2  MONTH   YEAR    QTR VAR1    VAR2
ABC_1234   1    1       2010    1   869     3988
ABC_1235   12   2       2010    1   639     3144
ABC_1236   13   3       2010    2   698     3714
ABC_1237   45   4       2010    2   630     3213

我正在运行的程序是:

proc import out=rawdata
    datafile = "c:\rawdata.xlsx"
        dbms = xlsx replace;

    format ID1 $9. ;
    format ID2 $3. ;
    format MONTH best2. ;
    format YEAR best4. ;
    format QTR best1. ;
    format VAR1 best3. ;
    format VAR2 best4. ;
run;

当我运行此步骤时,我得到以下日志输出:

错误:您正在尝试将字符格式 $ 与数据集 WORK.RAWDATA 中的数值变量 ID2 一起使用。

这似乎告诉我 SAS 自动分配变量类型。我希望能够手动控制它。我找不到解释如何执行此操作的文档。 INFORMAT、LENGTH 和 INPUT 语句似乎不适用于 PROC IMPORT。

我使用 PROC IMPORT 是因为它在 .xlsx 文件总体上取得了最大的成功。我能想到的两种可能的解决方案是1)将.xlsx转换为.csv并在数据步骤中使用INFILE,2)将数据作为数字引入并在后续步骤中将其转换为字符。我不喜欢第一个解决方案,因为它需要我手动操作数据,这是潜在的错误源(例如删除前导零)。我不喜欢第二个,因为它可能会无意中引入错误(再次,例如带有前导零)并引入无关的工作。


您可以尝试在 Excel 中将列类型设置为“文本”,看看 SAS 是否会从中确定。值得一试。

如果这不起作用,除非您使用 PC 文件服务器,或者在同一 SAS 服务器上安装了相同位数的 Excel 以直接访问文件,否则您将需要使用单独的数据步骤来转换列。

proc import 
    file = "c:\rawdata.xlsx"
    out=_rawdata(rename=(ID2 = _ID2) )
    dbms = xlsx replace;
run;

data rawdata;
    format ID1 $9. ;
    format ID2 $3. ;
    format MONTH best2. ;
    format YEAR best4. ;
    format QTR best1. ;
    format VAR1 best3. ;
    format VAR2 best4. ;

    set _rawdata;

    ID2 = cats(_ID2);

    drop _:;
run;

如果您有 SAS/Access to Excel,您可以直接使用DBDSOPTS 数据集选项 http://support.sas.com/documentation/cdl/en/acpcref/63184/HTML/default/viewer.htm#a003103761.htm。例如:

libname myxlsx Excel 'C:\rawdata.xlsx';

data rawdata;
    set myxlsx.'Sheet1$'n(DBDSOPTS="DBTYPE=(ID2='CHAR(3)')");
run;

出现该问题的原因是因为xlsx发动机在proc import位于 SAS 内部,并且与Excel引擎。这Excel引擎使用 Microsoft Jet 或 Ace,而xlsx引擎使用专有系统,该系统没有微软那么多的控制权。为什么会这样,我不知道。

When proc import运行时,SAS 将尝试猜测它应该是什么格式(您可以使用 xls 文件来控制该格式)guessingrows选项)。如果它检测到所有数字,它将假定为数字变量。不幸的是,如果没有安装 SAS/ACCESS to Excel 或 PC 文件服务器,您无法直接控制变量类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型 的相关文章

  • 在VBA中初始化全局变量

    在 Excel 2003 中 如何声明全局变量并仅在打开工作簿时初始化它们一次 我有一些由几个宏使用的参数 基本上是输入文件的路径 目前 我的代码如下所示 global path1 path2 as string sub initPaths
  • 在 PYTHON 中读取 EXCEL 时,“utf-16-le”编解码器无法解码字节

    我正在尝试读取不同语言 阿拉伯语 希腊语 意大利语 希伯来语等 的各种数量的 xls 文件 当我尝试调用 open workbook 函数时 出现如下所示的错误 不知道如何将格式设置为任何语言 Code book xlrd open wor
  • Typescript:隐式无参数函数类型

    我想要作为参数给出的函数的限定类型 我希望这种类型要么是一个没有参数的函数 返回一个包含参数的 void 函数 动作 要么是它返回自身的 void 函数 这是我想使用的代码 interface JsonArray extends Array
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 使用 ADODB 连接从关闭的工作簿中检索数据。某些数据被跳过?

    我目前正在编写一些代码 可以通过 ADODB 连接访问单独的工作簿 由于速度的原因 我选择了这种方法而不是其他方法 下面是我的代码 Sub GetWorksheetData strSourceFile As String strSQL As
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 无法使用 VBA 代码从 Excel 连接到 Teradata - 无法通过网络访问 Teradata 服务器

    我一直在尝试使用 vba 代码从 Excel 连接到 Teradata 但收到以下错误 无法通过网络访问 Teradata Server 我已经能够从 Teradata SQL 助手成功连接 并且还成功 ping 通 Teradata 服务
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 使用 VBScript 在日期字段值上选择错误的数据

    我有一张包含以下数据的表 现在 Excel 共有 36 个任务 每个任务有 4 列 第一个任务 即 Task1 名称将始终从 L 列开始 144 列描述了 36 个任务 现在我们需要按行进行检查 并需要检查 TNStart 开始日期 你们能
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • 数据透视表错误 |无效的调用或过程

    我需要一些帮助来解决这个问题 我正在尝试创建一个数据透视表 从第一季度开始 在同一张表中包含一系列数据 第一个 if 语句在那里是因为最后一列并不总是包含标题 所以我将其包含在那里 我希望范围是动态的 因为所制作的表格的大小将根据工作表中数
  • 从Excel工作表中读取汉字? (总是返回“???”)

    如何从Excel单元格中读取汉字并将其写入文件 当我取值时 Worksheets ActiveCell Worksheet Name Cells 3 columnNumbers 0 value 它总是返回 Dim fileStream Fi
  • 计算序列中的重复值

    如何使用Excel计算列中的重复数据 Example A B apple 1 apple 2 apple 3 ball 1 bat 1 dog 1 dog 2 gole 1 gole 2 gole 3 gole 4 我认为对于你的情况中的所
  • 从Excel单元格中提取固定长度的数字

    一些类似名称的线程 但仍然无法解决我的问题 我需要从 Excel 字符串中提取固定长度的 NUMBER 值 在我的场景中为 8 位数字 为此目的提供了以下 Excel 公式 MID A1 FIND SUBSTITUTE SUBSTITUTE
  • 使用 Excel VBA 循环工作簿文件夹并将所有工作表导出为制表符分隔文本

    我拼凑了一个 Excel VBA 脚本 该脚本将打开的工作簿中的所有工作表写入单独的制表符分隔文件 这仍然是 宏 吗 我正在 Excel 真空中学习这一点 它一次只处理一本工作簿 效果很好 这里是 Sub exportSheetsToTex
  • 有没有办法使用 Python Pandas 读取所有行,直到遇到空行

    我在 Excel 中有很多行 并且这些行在空行之后填充有垃圾值 有没有办法使用 Python pandas 只读取 Excel 中第一个空行之前的记录 我不知道 read excel 是否可以做到这一点 如果您从 Excel 导入空行 这些
  • type_info 的 std::is_convertible

    在 C 11 中 可以通过以下方式确定类型 A 的变量是否可以隐式转换为类型 B using std is convertible
  • Python 检查整数输入

    我试图允许用户输入我的程序 但是当他们输入字符串时我的程序失败 这是一个更大的程序 但正在尝试纠正问题 到目前为止我已经 data raw input Enter a number number eval data if type numb
  • 勾选或取消勾选复选框时输入时间戳

    我有一个 3 行 7 列的工作表 A1 G3 A 和 B 列有 6 个复选框 A1 B3 A 列和 B 列中的框分别链接到 C 列和 D 列 E 列和 F 列中的单元格只是分别复制 C 列和 D 列 实时E1细胞是 C1 and F3细胞是
  • 如何根据单元格的值更改单元格的格式和文本。 (条件格式)

    您好 我想根据单元格的值更改单元格的填充颜色和文本 假设我有以下价值观 我想让它像这样 对我来说 填充颜色很简单 因为我只需执行条件格式即可 然而 文字却让事情变得困难 如何将单元格值更改为文本 如上面的示例 谢谢 为颜色创建条件格式规则

随机推荐

  • 按低、中、高对列进行排序?

    所以 我有这个 select ticket trackingno ticket title ticket priority id ticket status id from hd tickets where ticket priority
  • 从另一个线程更新 JavaFX UI

    我有一个 JavaFX 应用程序和一个工作线程 通过以下方式实现javafx concurrent Task 它执行一个漫长的过程 即压缩和上传一组文件 我已将任务进度连接到进度条progressProperty 除此之外 我希望将正在处理
  • C++ 解析函数类型模板参数

    我希望能够致电function具有函数类型 包括参数和返回类型 的模板参数 即double int long 并在函数中分离类型并单独使用它们 例如我希望能够调用一个函数 printRes
  • 使用 QIcon 不显示图像

    我正在尝试学习 PyQt 在阅读教程以了解基础知识时 我遇到了 QIcon 的问题 以下代码应该创建一个简单的窗口 其中包含名为 web png 的图像中的图标 import os import sys import PyQt5 dirna
  • Python:将表转换为字符串为键:值对并存储在字典中

    我从子进程命令获取数据作为字符串 我想将这些数据存储在字典中 我怎样才能最好地实现这一目标 这是数据示例 我已将其作为字符串从子进程返回 NAME MAJ MIN RM SIZE RO TYPE MOUNTPOINT loop0 7 0 0
  • Java Lambdas:它在 JVM 中如何工作以及它是 OOP 吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 例如 在匿名内部类的情况下 将传递 匿名 对象引用并执行该对象的方法 Lambda 是在需要时执行的代码块 当遇到 lambda 时
  • 在 Angular 应用程序上将 XML RSS feed 转换为 Json

    我有一个这样的APIhttps blog com rss 它返回下面的 xml 作为博客提要 Note 我见过这个 但这是针对nodejs应用程序的 https github com nasa8x rss to json https git
  • 当图服务调用返回时,是否不能保证用户已添加到租户中?

    我的应用程序有一个用户管理界面 可供对我们的 Azure 租户没有足够权限的用户进行委派管理 当新用户添加到应用程序时 我们会检查该用户是否已存在于租户中 如果不存在 我们会邀请他们 像这样的事情 var existingUser Try
  • 在 EF 6 中创建具有主键和标识列的实体

    我已经有一张桌子了varchar首要的关键 这与我当前的工作正常 edmx model 现在我在该表中添加了一个自动增量标识列 当我尝试更新时 edmx 该表未包含在 edmx 我不能有一个varcharPK列和自增标识列在同一个表中 Ye
  • 错误:未为类“PlatformButton”定义方法“FlatButton”

    我收到这些错误 但不知道如何修复它们 AppData Local Pub Cache hosted pub dartlang org flutter platform widgets 1 20 0 lib src platform butt
  • 用于解密文件并将文件从一个目录移动到另一个目录的 Shell 脚本

    我有一个目录 里面有几个文件 我正在尝试解密这些文件并将它们移动到另一个目录 我不知道如何设置输出文件名并移动它 因此 目录结构如下所示 Applications MAMP bin decryptandmove sh Application
  • Apple 开发者注册错误:您目前无法完成 Apple 开发者计划的注册 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我注册 Apple Developer Program 时出现以下消息 您的注册无法完成 您目前无法完成 Apple 开发者计划的注册
  • 运行外部命令并获取其消耗的 CPU 量

    很简单 我想从 Python 脚本中运行外部命令 程序 一旦完成 我还想知道它消耗了多少 CPU 时间 Hard模式 并行运行多个命令不会导致CPU消耗结果不准确 On UNIX a 使用resource http docs python
  • 通过 HTTPS 的 Mojolicious

    我正在将 Mojolicious 用于需要加密连接的 Web 应用程序 但我不知道如何向 Mojolicious 添加 SSL 支持 我的同事向我发送了这些 文件domain key domain bundle crt domain crt
  • 部分语音识别

    我目前在使用 Microsoft 语音引擎进行语音识别方面玩得很开心 它的设置和使用 C 非常简单 并且可以用比我最初想象的更少的代码行来实现伟大的事情 现在 重点是我真的不知道如何处理这个问题 我知道引擎需要开始监听 然后你说一个单词或一
  • 资产路径中缺少指纹

    我们刚刚使用新的资产管道部署了 Rails 3 1 应用程序 在开发中一切看起来都很好 但在生产中所有资产图像都丢失了 部署时 我们遵循 Ruby on Rails Edge Guide 作为示例 我们的应用程序中的一个简单代码片段 ass
  • 当用户单击链接时,想要使用 jquery 在链接下方显示 div

    我有链接和一个div 我想当用户单击链接时在链接下方显示 div 我想通过代码将 div 定位在链接下方 这意味着 div 的顶部和左侧将根据链接的顶部和左侧位置通过代码设置 需要帮忙 a About a div a href About
  • 如何在 C# 中释放桌面应用程序的 VM/私有字节

    我有用 C 开发的桌面应用程序 应用程序使用的虚拟机大小非常高 我想向 pdf 文件添加水印 该文件有超过 10 000 页 确切地说是 10776 页 VM 大小增加 有时应用程序冻结或抛出内存不足异常 是否有解决方案可以在 C 中以编程
  • 如何在android中单击按钮时对EditText应用撤消和重做操作

    我正在尝试在向 EditText 写入或应用效果时应用撤消和重做操作 为此 我已经从这里下载了课程Link https code google com p android issues detail id 6458 c123然后我在我的应用
  • SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

    问题 使用 PROC IMPORT 时如何定义从 xlsx 文件导入的变量的变量类型 My work 我正在使用 SAS v9 4 据我所知 它是普通的 SAS 我没有 SAS ACCESS 等 我的数据如下所示 ID1 ID2 MONTH