sas 程序求助

sas 程序求助,第1张

1. 10名学生各科考试成绩按科列在一行中,如下所示:

英语 88 77 78 89 97 90 82 93 91 90

计算机 99 98 92 90 80 82 88 89 87 96

政治 90 98 93 89 83 87 88 80 94 85

请使用转置,并求出各科的平均成绩。

data tt

input course$ x1-x10

cards

英语 88 77 78 89 97 90 82 93 91 90

计算机 99 98 92 90 80 82 88 89 87 96

政治 90 98 93 89 83 87 88 80 94 85

run

proc printrun

proc transpose data=tt out=tm

var x1-x10

run

proc print

sum col1-col3

run

2. 不用SAS函数,用SAS数据步编程计算二项分布 的概率分布和累计概率。

data tmp(keep=k pnk fnk)

n=20p=0.36

array fn(0:50)

fn(0)=1

do m=1 to n

fn(m) = fn(m-1) * m

end

do k=0 to n

pnk = fn(n)/(fn(k)*fn(n-k)) * p**k * (1-p)**(n-k)

fnk + pnk

output

end

run

proc print noobs label

label pnk='概率' fnk='累积概率'

run

proc gplot

plot pnk*k

symbol v=dot c=red i=join

run

大致应该是如此吧~希望回答对你有帮助

data tmp(drop=i)

n=2

output

do n=3 to 2000000 by 2

do i=2 to ceil(sqrt(n))

if mod(n,i)=0 and i^=ceil(sqrt(n)) then leave

if mod(n,i)^=0 and i=ceil(sqrt(n)) then output

end

end

run

上面这个对你那个稍微修改了下,速度快了不少,不过肯定还有更快的,

我见过一算法是这样,比如在判断10这个数是否是素数时,分别用10去除前面已判断出的2,3,5,7

而不是用10去除1-9,这样的算法大大提高了计算速度,可惜SAS水平有限


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11223908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存