楼主: peter
5897 6

[原创博文] 请问在sas的sql语句中如何按照观测号删除观测值? [推广有奖]

  • 4关注
  • 7粉丝

已卖:211份资源

学科带头人

27%

还不是VIP/贵宾

-

威望
0
论坛币
20263 个
通用积分
7.2198
学术水平
13 点
热心指数
13 点
信用等级
13 点
经验
5185 点
帖子
1105
精华
0
在线时间
1853 小时
注册时间
2005-3-10
最后登录
2026-1-6

楼主
peter 发表于 2011-4-5 21:50:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如题,我在sas中操作出现了如下错误:
第一种尝试:
proc sql;

delete

from peter.myworld

where _n_=7;
quit;



136  proc sql;
137      delete
138      from peter.myworld
139      where _n_=7;
ERROR: The following columns were not found in the contributing tables: _n_.
140  quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds


第二种尝试:
proc sql;

delete

from peter.myworld

where noobs=7;
quit;


141  proc sql;
142      delete
143      from peter.myworld
144      where noobs=7;
ERROR: The following columns were not found in the contributing tables: noobs.
145  quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
还有一个小疑惑就是,sas怎么会说找不到columns?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql语句 sas的 观测值 sql Contributing following sql语句 because process seconds

回帖推荐

yugao1986 发表于2楼  查看完整内容

1# peter data sample; set peter.myworld; id=_n_; run; proc sql; delete from sample where id=7; quit;

本帖被以下文库推荐

沙发
yugao1986 发表于 2011-4-6 09:22:08
1# peter

data sample;
   set peter.myworld;
   id=_n_;
run;
proc sql;
  delete from sample
  where id=7;
quit;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

三人行必有我师

藤椅
leedx 发表于 2011-4-6 09:35:41
  1. data a;
  2.    set b;
  3.    if _n_=7 then delete;
  4. run;
复制代码
直接用if语句不就可以实现你的目的嘛

板凳
peter 发表于 2011-4-6 21:51:42
yugao1986 发表于 2011-4-6 09:22
1# peter

data sample;
   set peter.myworld;
   id=_n_;
run;
proc sql;
  delete from sample
  where id=7;
quit;
感谢回复!你这个方法是复制一个原数据集,然后删去复制数据集中的观测吧?这个对原数据集是没有影响的吧?
如果我想直接删去原数据集中的变量,该怎么办?
我将你后面的命令直接用到原数据集上,还是不行。

proc sql;

delete

from peter.myworld

where id=10;
quit;


sas的log:
26   proc sql;
27       delete
28       from peter.myworld
29       where id=10;
ERROR: The following columns were not found in the contributing tables: id.
30   quit;

报纸
peter 发表于 2011-4-6 21:52:38
3# leedx 谢谢!
请问若想用sql过程实现,该如何操作?

地板
yugao1986 发表于 2011-4-6 22:09:51
4# peter
保持原数据的完整。你可以在修改过的数据中将id去掉就可以了,就等价在原数据修改了。
三人行必有我师

7
hongxx 发表于 2011-4-9 02:49:15
注意:用proc sql 的Delete 语句删除了观测,数据集大小不会因此减少,依旧会占据空间。
Note:   For PROC SQL tables, SAS deletes the data in the rows but retains the space in the table

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 04:43