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 时定义类型 的相关文章

  • 即使 Excel 中存在多条记录,CopyFromRecordset 也仅复制并粘贴第一行

    我有一个包含表格数据的 Excel 工作表 strSQL SELECT S FIELD NAME1 S FIELD NAME2 S FIELD NAME3 from SourceData A1 IV6 S Dim cn as ADODB C
  • 在 C 中如何将一种类型的变量更改为另一种类型?

    我要做 int main bla bla bla void onetype switch USER INPUT TYPE CASE CONVERT TO CHAR convert onetype VOID TO CHAR gt gt gt
  • 如何使用 Excel.UriLink.16 更改 Excel URL 的文件关联?

    我正在尝试更改文件关联 以便在另一个浏览器中打开 Excel 单元格中的 URL 根据使用 CMD ftype命令与Excel UriLink 16 我应该能够使用以下命令从 powershell 通过 cmd 执行此操作 To chang
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • 具有继承类型的 Aux 模式推理失败

    我有一个复杂的玩具算法 我希望纯粹在类型级别上表示 根据饮食要求选择当天菜肴的修改 对卷积表示歉意 但我认为我们需要每一层才能达到我想要使用的最终界面 我的代码有一个问题 如果我们表达一个类型约束Aux 模式生成的类型基于另一个泛型类型 它
  • 如何禁用 openpyxl 表中的自动过滤器?

    当我使用 openpyxl 创建表时 它默认在所有列上添加自动过滤器 使用中提供的示例可以重现该行为文档 https openpyxl readthedocs io en stable worksheet tables html 我想显示没
  • Excel VBA 过滤和复制粘贴数据

    给定一个数据集 假设有 10 列 在 A 列中我有日期 在 B 列中我有 我想仅过滤 A 列 2014 年的数据 B 列 ActiveSheet Range A 1 AR 1617 AutoFilter Field 5 Operator x
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • 如何正确导入主代码和模块中同时使用的模块?

    假设我有一个主脚本 main py 它导入另一个 python 文件import coolfunctions另一个 import chores 现在 假设 Coolfunctions 也使用家务活中的东西 因此我声明import chore
  • VBA根据单元格的值是否为零显示/隐藏行

    我有一个 Excel 工作表 我想根据另一个单元格中的值隐藏或取消隐藏某些行 简而言之 整个事情应该取决于单元格中的值C2 D2 E2 If C2 is blank我想rows 31 to 40被隐藏 如果是的话不为空 他们需要是visib
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 为什么这些类型参数不符合类型细化?

    为什么此 Scala 代码无法进行类型检查 trait T type A trait GenFoo A0 S lt T type A A0 trait Foo S lt T extends GenFoo S A S 我不明白为什么 类型参数
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • Werkzeug 中的线程和本地代理。用法

    首先 我想确保我正确理解了功能的分配 分配本地代理功能以通过线程内的模块 包 共享变量 对象 我对吗 其次 用法对我来说仍然不清楚 也许是因为我误解了作业 我用烧瓶 如果我有两个 或更多 模块 A B 我想将对象C从模块A导入到模块B 但我
  • 检查一个数字是 int 还是 float

    在perl中 我想检查给定变量是否包含浮点数 为了检查我正在使用的 my Var 0 02 Floating point number if int Var Var floating point number 但上面的代码对于 0 0 不起
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

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

    所以 我有这个 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