• 如何使用SAS代写从Excel中读取一系列单元格


    原文链接:http://tecdat.cn/?p=5211

    电子表格不是数据库。但是,我们中的许多人使用电子表格就好像它们是数据库一样,然后当电子表格布局不支持数据库样式严格的可预测行,列和变量类型时,我们就会挣扎 - 这是分析和报告所需的基本元素。如果您使用SAS从Microsoft Excel读取数据,当您需要的数据不是从单元格A1开始时,您可以做什么?

    通过设计,SAS可以从电子表格中的任何单元格范围读取数据。在本文中,我将介绍如何在PROC IMPORT中使用RANGE语句来获取所需的数据。

    对于SAS 9.4及更高版本,SAS建议使用DBMS = XLSX以获得最大的灵活性。它适用于所有操作系统,无需其他组件,如PC文件服务器。您的Excel文件必须采用Excel 2007或更高版本格式(XLSX)。你这样做需要SAS / ACCESS到PC文件的许可证。(刚刚学习?这些DBMS = XLSX技术也适用于SAS大学版。)

    如果您的Excel数据不是从单元格A1(导入过程的默认起点)开始,那么您可以添加包含特定单元格的RANGE =值。最简单的方法是在Excel中使用命名范围来定义数据的确切边界。

    如何添加命名范围

    要在Excel中定义命名范围,请突出显示要包括的单元格范围,然后只需在“名称框”中键入范围的新名称:

    然后保存Excel文件。

    然后要导入SAS,请在RANGE =选项中指定范围名称:

    proc importdatafile="/myprojects/myfile.xlsx"out=mydatareplace;range="myspecialrange";run;
    
    

    对单元格区域使用Excel表示 

    如果您不提前知道范围怎么办?您可以使用PROC IMPORT读取整个工作表,但结果将不包含所需的列标题和类型。考虑这样一张表:

    这段代码会读它:

    proc importdatafile="/myprojects/middle.xlsx"out=mid dbms=xlsxreplace;run;

    但结果将包含许多空单元格,并且值将作为所有字符类型读取:

    通过附加编码,您可以使用DATA步骤将此结果“修复”到另一个传递中。或者,如果您愿意为特定单元格区域添加带有Excel表示法的RANGE选项,则可以在第一遍中正确阅读:

    proc importdatafile="/myprojects/middle.xlsx"out=mid dbms=xlsxreplace;range="Sheet1$E7:K17";run;

    如何“发现”Excel文件的结构

    您还可以使用LIBNAME XLSX从Excel中读取整个工作表,或者只是作为发现步骤在运行PROC IMPORT之前查看Excel文件包含的工作表。但是,LIBNAME XLSX不显示Excel命名范围。

    在SAS for Windows系统上,您可以使用LIBNAME EXCEL(32位)或LIBNAME PCFILES(64位)来显示有关Excel文件的更多信息。

    libnamed pcfiles path="c:myprojectsmiddle.xlsx";proc datasetslib=d;quit;/* always clear the libname, as it locks the file */libnamed clear;

    请注意,DBMS = XLSX不支持我们在旧版DBMS = XLS(仅支持旧格式XLS文件)中看到的一些选项,例如STARTROW和NAMEROW。DBMS = XLSX支持GETNAMES(将工作表或范围的第一个记录视为变量名称)。

    有问题欢迎下方留言!

  • 相关阅读:
    北京燃气IC卡充值笔记
    随机分析、随机控制等科目在量化投资、计算金融方向有哪些应用?
    量化交易平台大全
    Doctor of Philosophy in Computational and Mathematical Engineering
    Institute for Computational and Mathematical Engineering
    Requirements for the Master of Science in Computational and Mathematical Engineering
    MSc in Mathematical and Computational Finance
    万字长文:详解多智能体强化学习的基础和应用
    数据处理思想和程序架构: 使用Mbedtls包中的SSL,和服务器进行网络加密通信
    31-STM32+W5500+AIR202/302基本控制篇-功能优化-W5500移植mbedtls库以SSL方式连接MQTT服务器(单向忽略认证)
  • 原文地址:https://www.cnblogs.com/tecdat/p/11320064.html
Copyright © 2020-2023  润新知