Sas:如何从 excel 导入特定范围


您可以使用带有RANGE选项的PROC IMPORT语句将特定范围的单元格从 Excel 文件导入到 SAS。

为此,您可以使用以下基本语法:

 /*import data from Excel file called basketball_data.xlsx*/
proc import out =my_data
    datafile ="/home/u13181/basketball_data.xlsx"
    dbms =xlsx
    replace ;
    getnames =YES;
    range ="Sheet1$C4:E11";
run ;

以下是每行的作用:

  • out :导入 SAS 后为数据集指定的名称
  • datafile :要导入的 Excel 文件的位置
  • dmbs :正在导入的文件的格式
  • 替换:如果文件已存在则替换该文件
  • getnames :使用第一行作为变量名称(如果第一行不包含变量名称,则设置为 NO)
  • range :要导入的单元格范围

请注意,此特定示例将从名为篮球数据.xlsx 的Excel 文件导入Sheet1C4:E11区域中的单元格。

以下示例展示了如何在实践中通过以下名为篮球数据.xlsx的 Excel 文件使用此语法:

示例 1:将数据从 Excel 文件导入 SAS 而不指定范围

我们可以使用以下语法将 Excel 文件导入到名为my_data的 SAS 数据集中,而无需指定要导入的特定单元格范围:

 /*import data from Excel file called basketball_data.xlsx*/
proc import out =my_data
    datafile ="/home/u13181/basketball_data.xlsx"
    dbms =xlsx
    replace ;
    getnames =YES;
run ;

/*view dataset*/
proc print data =my_data; 

由于我们没有使用范围语句来指定要导入的单元格范围,因此 SAS 导入了所有单元格,直到遇到工作表中的数据为止。

示例 2:将 Excel 文件中的数据导入 SAS 并指定范围

我们可以使用以下语法将 Excel 文件导入名为my_data的 SAS 数据集,并使用range选项仅导入特定范围的单元格:

 /*import specific cells from Excel file called basketball_data.xlsx*/
proc import out =my_data
    datafile ="/home/u13181/basketball_data.xlsx"
    dbms =xlsx
    replace ;
    getnames =YES;
range ="Sheet1$C4:E11";
run ;

/*view dataset*/
proc print data =my_data; 

由于我们使用范围语句来指定要导入的单元格范围,因此 SAS 仅从工作表中导入该范围内的单元格。

请注意,您还可以将命名范围传递给范围语句。

例如,如果单元格区域C4:E11有一个名为my_range的区域,您可以在PROC IMPORT语句中使用参数range=”my_range”

注意:您可以在此处找到 SAS 中PROC IMPORT语句的完整文档。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

如何将 CSV 文件导入 SAS
如何将 SAS 数据导出到 CSV 文件
如何将 SAS 数据导出到 Excel

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注