楼主: bobo747
4907 8

高手帮忙 [推广有奖]

  • 0关注
  • 0粉丝

初中生

28%

还不是VIP/贵宾

-

威望
0
论坛币
21 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
155 点
帖子
24
精华
0
在线时间
0 小时
注册时间
2007-9-24
最后登录
2010-9-27

楼主
bobo747 发表于 2008-7-15 14:44:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

两个基本题目,求高手赐教

1.用sas数据步列出10000以下的素数,写出程序

2.写出计算从自己生日到2000年初经过的天数的程序

二维码

扫码加我 拉你入群

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

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

关键词:求高手 高手 帮忙

回帖推荐

marloneusa 发表于3楼  查看完整内容

This is the code for your first question:data test;    do i=1 to 10000;        do j=1 to 10000;            do k=1 to 10000;                if j*k=i then output;            end;      ...

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

1.不是学数学的,忘了什么是素数(痛恨高中数学,完全是浪费青春的无聊游戏)2. 给你写了一个宏程序, 你只要把自己的生日按照(月,日,年)的格式作为参数执行这个宏,就能得到从自己生日到2000年1月1日经过的天数, 记住结果显示在LOG里,不在OUTPUT WINDOW.我的例子用的生日是2001年元旦。%macro daysto2000(month,day, year);data _null_;days=mdy(&month,&day,&year)-mdy(1,1,2000);put 'days from the birthday to Ja ...

本帖被以下文库推荐

沙发
thinman66 发表于 2008-7-16 02:14:00

1.不是学数学的,忘了什么是素数(痛恨高中数学,完全是浪费青春的无聊游戏)

2. 给你写了一个宏程序, 你只要把自己的生日按照(月,日,年)的格式作为参数执行这个宏,就能得到从自己生日到2000年1月1日经过的天数, 记住结果显示在LOG里,不在OUTPUT WINDOW.我的例子用的生日是2001年元旦。


%macro daysto2000(month,day, year);
data _null_;
days=mdy(&month,&day,&year)-mdy(1,1,2000);
put 'days from the birthday to Jan1,2000  =' days;
run;
%mend;
%daysto2000(1,1,2001)

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

藤椅
marloneusa 发表于 2008-7-16 04:09:00
This is the code for your first question:

data test;
    do i=1 to 10000;
        do j=1 to 10000;
            do k=1 to 10000;
                if j*k=i then output;
            end;
        end;
    end;
run;

proc freq data=test; table i/out=tt ;;run;

data tes; set tt; if count =2 then  output; run;

[此贴子已经被作者于2008-7-16 4:09:54编辑过]

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

板凳
bobo747 发表于 2008-7-16 18:27:00

看不懂days=mdy(&month,&day,&year),里面的&符号不是什么意思?

高手解释下

报纸
include999 发表于 2008-7-16 22:27:00
&month表示引用宏参数的值,因为他的程序是放在宏daysto2000里面的。

地板
eco-china 发表于 2008-7-17 05:09:00
Bravo!

7
路斯菲尓 发表于 2008-7-17 10:02:00

普通的SAS程序就行了!

data a;
day1=year*365+month*30+day;
day2=2000*365+1*30+7;
day3=day2-day1;
proc print data=a(keep=day3);
run;

其中year 、month 、day分别是你的出生年月日!day3就是经过的天数。

8
崩溃 发表于 2008-7-29 10:42:00
以下是引用路斯菲尓在2008-7-17 10:02:00的发言:

普通的SAS程序就行了!

data a;
day1=year*365+month*30+day;
day2=2000*365+1*30+7;
day3=day2-day1;
proc print data=a(keep=day3);
run;

其中year 、month 、day分别是你的出生年月日!day3就是经过的天数。

新手吧?以上算出来的不准,因为每四年有一个366天.

用mdy(m,d,y)函数即可

data temp;

a=dmy(1,1,2000)-mdy(m,d,y);/*(把你的出生日期按月日年的格式填进去*/

run;

proc print;

run;

显示的就是天数就是出生日期到2000年1月1日的天数(具体是否加1由你自己定,比如你昨天生日,到今天算1天还是2天? SAS计算出来的差是1,呵呵).

[此贴子已经被作者于2008-7-29 10:43:11编辑过]

9
terryw 发表于 2008-7-31 00:19:00

说一点我对第二个问题的想法。

不知道我是不是正确的理解了lz的问题,如果单独是要计算两个日期之间的天数,可以直接用函数intck就好了

Syntax

INTCK(interval, from, to)

比如一个人的生日是1960年8月15日, 那么到2000年1月1日之间的天数的计算就可以写成

intck('day','15Aug1960'd,'01Jan2000'd)

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

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