楼主: daazx
1350 2

求一句SAS代码的解释 [推广有奖]

  • 0关注
  • 53粉丝

VIP

已卖:2份资源

教授

2%

还不是VIP/贵宾

-

TA的文库  其他...

Hadoop与大数据

威望
0
论坛币
50036 个
通用积分
7.1383
学术水平
176 点
热心指数
197 点
信用等级
114 点
经验
11000 点
帖子
445
精华
3
在线时间
1069 小时
注册时间
2007-10-19
最后登录
2021-6-1
毕业学校
深圳大学

楼主
daazx 在职认证  发表于 2013-7-18 21:05:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
set b;
yy=(y=3); logit=3;output;
yy=(y=2); logit=2;output;
yy=(y=1); logit=1;output;
run;

其中yy=(y=3); logit=3;output;是想做什么?
没有if,也没有循环,这段代码把每一个观测值都变成三个了,求解释

二维码

扫码加我 拉你入群

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

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

关键词:sas代码 output outpu logit Data 做什么

沙发
071029 发表于 2013-7-18 21:17:18
set 是一条观测、一条观测的方式进行的。
读取b数据集的第一条观测时,由于set b后面还有语句,
yy=(y=3); logit=3;output;
yy=(y=2); logit=2;output;
yy=(y=1); logit=1;output;
所以,未遇到run,回不到data步开头,不会将pdv中的变量制空,一直存在。没执行一个output,b中的值也会输出到数据集。

藤椅
yongyitian 发表于 2013-7-18 22:23:24
yy =(y=3) 相当于一个条件语句.
当 y=3 为真时 yy=1;
当 y=3 为假时 yy=0;

logit=3; output; 的意思是 把 yy=1 or yy=0 和 logit=3 输出到结果数据集 a

第一个output后,程序在同一条观测上继续运行下面的语句。

下面的 code 说明 为什么每一条观测有三条输出.

data b;
input x y;
datalines;
1 1
2 2
3 3
;
data a;
  set b;
  yy=(y=3); logit = 3; output;
  yy=(y=2); logit = 2; output;
  yy=(y=1); logit = 1; output;
run;


下面的 code 与上面的 code 得到相同的结果
data c;
  set b;
if y = 3 then yy=1;
   else yy=0;
   logit = 3;
   output;      
if y = 2 then yy=1;
   else yy=0;
   logit = 2;
   output;
if y = 1 then  yy=1;
   else  yy = 0;
   logit = 1;
   output;
run;
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
linhaoran + 1 + 1 + 1 分析的有道理
scarfacetony + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

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

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