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 文件导入Sheet1的C4: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 中执行其他常见任务: