楼主: ciciwanghk
1956 5

[原创博文] 下面这段代码嘛意思? [推广有奖]

  • 0关注
  • 0粉丝

博士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
75 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2914 点
帖子
97
精华
0
在线时间
289 小时
注册时间
2009-7-15
最后登录
2022-4-30

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data b;
a=1;
b=2;
c=3;
run;
data c;
input x1 x2 x3;
cards;
12 34 23
32 23 23
32 43 43
;
run

data a;
if _n_=1 then set b;
set c;
run;
c是可以是任意数据集,运行完了之后b中的数据全部加到c数据集的最左边了,是怎么回事?那位大侠能解释一下
if _n_=1是什么意思
二维码

扫码加我 拉你入群

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

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

关键词:Input cards 是什么意思 Data card

回帖推荐

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

就是在第一个data step循环时可用来测试的变量,_N_=1就表示第一个观测, _N_>1就表示以后的观测。1 2 3 会出现在每一个观测前面因为实际上用了两个set语句,而且有6个变量。如果拿掉_N_=1结果就完全不一样。我也有一个问题:为什么 1 2 3 在第二个和第三个观测中出现,难道它们被retain了吗?

本帖被以下文库推荐

沙发
Actree 发表于 2011-2-25 13:43:13 |只看作者 |坛友微信交流群
就是在第一个data step循环时可用来测试的变量,_N_=1就表示第一个观测, _N_>1就表示以后的观测。1 2 3 会出现在每一个观测前面因为实际上用了两个set语句,而且有6个变量。如果拿掉_N_=1结果就完全不一样。我也有一个问题:为什么 1 2 3 在第二个和第三个观测中出现,难道它们被retain了吗?

  1. data b;
  2.     a=1;
  3.     b=2;
  4.     c=3;
  5. run;

  6. data c;
  7.     input x1 x2 x3;
  8. datalines;
  9. 12 34 23
  10. 32 23 23
  11. 32 43 43
  12. ;
  13. run;

  14. data a;
  15.     /*if _n_=1 then*/ set b;
  16.     set c;
  17. run;
  18. proc print data=a;
  19. run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

使用道具

藤椅
飘洒 发表于 2011-2-26 20:26:36 |只看作者 |坛友微信交流群
是否可以从SAS读取数据的机制来理解,SAS先把这些数据集放在内存的一个缓存中,其内部有一个循环来读取数据的每一条。在第一个set中,以2楼的为例,把3个变量都读进来,而后面的set接着运行,读取第一条,第二条,等等,相当于两个循环。
It is not entirely satisfying but the alternatives are worse!
统计人

使用道具

板凳
webgu 发表于 2011-2-26 22:17:30 |只看作者 |坛友微信交流群
2# Actree
用set读的数据,SAS在DATA步自循环时会被自动Retain。两个SET连用,类似于Merge语句。具体机制可参看Help文件。

使用道具

报纸
Actree 发表于 2011-2-26 22:53:53 |只看作者 |坛友微信交流群
噢,原来如此,多谢 4# webgu

使用道具

地板
crackman 发表于 2011-2-27 10:49:03 |只看作者 |坛友微信交流群

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-29 01:54