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

如何使用_n_变量删除SAS数据表中的观测值

借助SAS的_n_变量删除指定行的正确方法
  • 你的代码核心问题是逻辑判断错误:_n_ >=809 or _n_<=868会匹配所有行(任何观测的行号必然满足“大于等于809”或“小于等于868”中的一个),所以会删除全部数据。要精准删除809到868的行,应该用**且(and)**连接条件:
data two; 
set one; 
if _n_ >= 809 and _n_ <= 868 then delete; 
run;
  • 如果你目标是删除无数据的空行,仅靠硬编码行号可能不够灵活(比如数据更新后空行位置变化),可以直接判断行内所有变量是否为空:
    • 使用cmiss(of _all_)函数统计当前行的缺失值数量,当数量等于总变量数时,说明这是完全空的行:
data two;
set one;
if cmiss(of _all_) = dim(_all_) then delete;
run;
  • 还可以用更高效的方式跳过指定行,通过set语句的firstobs和obs参数分两次读取数据集再合并,不需要遍历全部行做判断:
data two;
  set one(obs=808) one(firstobs=869);
run;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:42:01