【问题标题】:Ignoring specific rows in SAS忽略 SAS 中的特定行
【发布时间】:2022-01-06 17:49:30
【问题描述】:

我有一个要导入 SAS 的大型 Excel 文件;第 1 行有变量名称,但文件的第 2-4 行有我不希望在我的 SAS 数据集中的其他描述性信息(关于变量)。有没有办法在导入数据时或将数据导入 SAS 后排除这 3 行?

【问题讨论】:

  • 请展示您尝试过的方法并解释它如何不能满足您的需求。您可以将文件作为 CSV 而不是实际的 Excel 二进制文件吗?您在阅读文本文件时将拥有更大的灵活性。
  • 尝试读取文件两次。首先按原样阅读以获取变量名称。然后再次读取它,指定 RANGE 选项从 A5:0 开始,它将读取所有数据,但使用默认名称。然后您可以根据需要使用一些代码重命名数据。

标签: import sas rows


【解决方案1】:

假设您的数据在 Excel 中如下所示:

使用 proc import 中的选项 datarow=5 指定您的数据从第 5 行开始。proc import 将自动提取第 1 行中的名称,然后跳到第 5 行开始读取数据。

proc import 
    file = '/location/have.xlsx'
    out  = want
    dbms = xlsx
    replace;
    datarow = 5;
run;

输出:

Var1    Var2    Var3
1       2       3
4       5       6

【讨论】:

  • 谢谢。我的 xls 文件中有多个工作表,并包含选项 RANGE 来指定工作表名称,但它说该语句无效。
  • 使用sheet= 选项来命名特定工作表。如果需要,您可以使用宏循环遍历多张工作表。
  • 成功了,非常感谢!
  • 很高兴听到。如果您可以接受此答案,则将其标记为已接受将对搜索此问题的其他人有很大帮助。
猜你喜欢
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 2023-02-06
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多