You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS中如何指定变量名行、起始数据行并导入目标文本文件

调整后的SAS代码实现需求
proc import datafile="windows/user/data_set.txt"
    dbms=dlm
    out=data_set_temp
    replace;
    namerow=4; /* 指定第4行作为变量名 */
    datarow=7; /* 指定从第7行开始读取数据 */
    delimiter=';';
    getnames=yes; /* 启用读取变量名 */
run;

/* 删除最后3行空行,保留有效数据 */
data data_set;
    set data_set_temp;
    /* 过滤掉所有变量均为空的行 */
    if n(of _all_) > 0;
run;

代码修改说明

  • namerow=4:指定文本文件第4行作为数据集变量名,自动读取y2011、y2012等年份格式的变量名。
  • getnames=yes:配合namerow启用变量名读取功能,替换原代码的getnames=no。
  • 临时数据集data_set_temp:先导入所有行(含末尾空行),再通过DATA步过滤无效空行。
  • if n(of _all_) > 0:判断当前行是否存在非空变量,过滤掉所有变量为空的行(即末尾3行空行)。

如果已知有效数据的总行数(原文本中有效数据共4行),也可直接在PROC IMPORT中指定读取范围,跳过末尾空行:

proc import datafile="windows/user/data_set.txt"
    dbms=dlm
    out=data_set
    replace;
    namerow=4;
    datarow=7;
    obs=10; /* 仅读取到第10行(最后一行有效数据) */
    delimiter=';';
    getnames=yes;
run;

内容的提问来源于stack exchange,提问作者Elise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:11:05