楼主: 子墨13
2815 11

[问答] 不能生成变量 [推广有奖]

  • 3关注
  • 5粉丝

已卖:1份资源

讲师

54%

还不是VIP/贵宾

-

威望
0
论坛币
224 个
通用积分
3.0011
学术水平
6 点
热心指数
12 点
信用等级
5 点
经验
5058 点
帖子
426
精华
0
在线时间
352 小时
注册时间
2010-7-25
最后登录
2022-2-16

楼主
子墨13 在职认证  发表于 2013-5-17 20:04:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教大家
我有如下一段程序

6    data gl(keep=code date lolo sls price);/**********请注意,这里取了5个变量****************/
7    set price_a;
8    if lolo=' ' then delete;
9    ret=(prccd-lag(prccd))/lag(prccd);/**********我想计算收益率,并将结果放到变量ret中****************/
11   run;
可是运行的时候弹出以下结果:

NOTE: 缺失值的生成是对缺失值执行操作的结果。
       指定每个位置的方式: (次数)(行:列)。
      120371 10:11
NOTE: 有 XXX 个从数据集 PRICE_A 读取的观测。
NOTE: 数据集GL 有 XXX 个观测和 5 个变量。/**********我的神呐,为什么只有5个变量!!!!!!!***************/
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          1:57.36
      CPU 时间          44.27 秒

我打开生成的数据集一看,果然没有ret,请问究竟哪里出了问题????


二维码

扫码加我 拉你入群

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

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

关键词:生成变量 delete Price note Rice 收益率 price 程序

沙发
yuerqieqie 发表于 2013-5-17 20:49:33
你没有keep ret阿

藤椅
子墨13 在职认证  发表于 2013-5-17 22:04:19
yuerqieqie 发表于 2013-5-17 20:49
你没有keep ret阿
ret是我计算价格变动率的时候新建的啊

板凳
boe 发表于 2013-5-17 22:17:37
子墨13 发表于 2013-5-17 22:04
ret是我计算价格变动率的时候新建的啊
你在keep里加上即可
已有 1 人评分热心指数 收起 理由
子墨13 + 1

总评分: 热心指数 + 1   查看全部评分

Gorgeous girl , I love !

报纸
yongyitian 发表于 2013-5-17 22:20:37
/* the first lag_prccd is missing value */
/* prccd may also has missing values */

/* try this */
    data gl;
    set price_a;
    if lolo=' ' then delete;
    lag_prccd=lag(prccd);
    if lag_prccd ^=. and proccd^=. then ret=(prccd-lag_prccd)/lag_prccd;
    keep=code date lolo sls price ret;
    run;



地板
yuerqieqie 发表于 2013-5-17 23:14:45
boe 发表于 2013-5-17 22:17
你在keep里加上即可
data gl(keep=code date lolo sls price);是指keep 输出变量,也就是说gl里只包含这5个
已有 1 人评分学术水平 收起 理由
子墨13 + 1 一语中的

总评分: 学术水平 + 1   查看全部评分

7
boe 发表于 2013-5-17 23:30:53
data gl(keep=code date lolo sls price ret);就能达到效果吧。
与把keep code date lolo sls price ret;放在run;前面效果一样。
??????

data test;
  input id $ x@@;
datalines;
a 1 b 2 c 3 d 4 e 5
;
run;
data te(keep=id ret);
  set test;
  ret=(x-lag(x))/lag(x);
run;
Gorgeous girl , I love !

8
bobguy 发表于 2013-5-18 05:23:04
data gl;
   set price_a(keep=code date lolo sls price);/**********请注意,这里取了5个变量****************/

*****
run;

You need to put the keep option on the input data set.

9
子墨13 在职认证  发表于 2013-5-18 10:36:16
bobguy 发表于 2013-5-18 05:23
data gl;
   set price_a(keep=code date lolo sls price);/**********请注意,这里取了5个变量********* ...
OK,看了大家的回复,我基本明白错在哪里了,thanks

10
子墨13 在职认证  发表于 2013-5-18 10:36:48
boe 发表于 2013-5-17 23:30
data gl(keep=code date lolo sls price ret);就能达到效果吧。
与把keep code date lolo sls price ret; ...
OK,我基本明白错在哪里了,thanks

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 04:16