楼主: 妖帝东皇
1288 0

SAS中@和@@的区别 [推广有奖]

  • 2关注
  • 11粉丝

已卖:1124份资源

博士生

49%

还不是VIP/贵宾

-

威望
0
论坛币
1964 个
通用积分
4.1801
学术水平
26 点
热心指数
30 点
信用等级
26 点
经验
6082 点
帖子
252
精华
0
在线时间
286 小时
注册时间
2013-8-29
最后登录
2018-4-13

楼主
妖帝东皇 发表于 2013-9-21 20:42:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

今天才开始看the little sas book!看到下面这个程序。

在SAS中运行如下程序,查看结果。

data test;

infile cards ;

input x @;

input y;

input z @@;

cards;

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17  

;

run;

proc print;

run;

结果:

Obs

x

y

z


1

1

2

7


2

8

9

13

我自己的体验解释:


一个data步读取数据是多个循环构成的,读取一条观测记录就是循环一次。

一个input语句执行完之后立即换行继续下面的语句;

若在input语句之后加@,则该行以及之后的数据保留到下一个input语句开始读入数据;

若在input语句之后加@@,则该行以及之后的数据保留到下一次data步循环。

可以对比:

data test;

infile cards ;

input x @;

input y;

input z @;

cards;

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17  

;

run;

proc print;

run;

结果:

Obs

x

y

z


1

1

2

7



以及:


data test;

infile cards ;

input x @;

input y;

input z ;

cards;

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17  

;

run;

proc print;

run;

结果:

Obs

x

y

z


1

1

2

7


还可以添加 pull _all_ 查看变量的取值过程:

data test;

infile cards ;

put _all_;

input x @;

put _all_;

input y;

put _all_;

input z @;

put _all_;

cards;

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17   

;

run;

proc print;

run;


二维码

扫码加我 拉你入群

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

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

关键词:infile little Input cards print 程序 记录

┏━━━━━━━━━━━━━━┓
   ☞❤学而无友必然孤陋寡闻!❤
┗━━━━━━━━━━━━━━┛

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-4 01:11