训练记忆的SAS程序
对于医者而言,需要经常温习,测试已经学习过的内容,以加深印象,巩固知识。现在,通过网络可以下载到很多的电子试卷,给我们检测自己的能力带来很大方便。同时注意到
这些电子内容适用范围狭窄,不便于操作,是因为其形式固定、僵化造成种种不便:(1)排列顺序固定,过于规律,看过第一遍,以后就容易凭经验‘顺竿遛’,再次测试达不到目的,其在随机性上需要大大改良;(2)题数不能灵活变动<1>不能根据实际情况添加有用内容<2>在测试时必须完成指定题数,这在个体诊所及家务事多的人时间不允许;(3)目前仅见选择题型的电子书,而能抽查,考核背诵、记忆内容的未见,而以上及更多没能详细阐明的缺陷都可以被sas消除。基于此,简介一下可能帮助记忆训练的sas程序。
实际上这些都是“常用抽样sas程序”的拓展,“http://www.pinggu.org/bbs/b68i392413p1.html”。
一 首先搞一个示例文件 可见有33个需要记忆的题目:第一列题号;第二列是题号下对应的句子号,每个句子号的第一行代表该题干下有几个需要记诵的句子;第三列即题干和对应的句子。
1 1 年龄分期
1 1 胎新婴幼学龄青
2 3 小儿体重
2 1 1周内体重(kg)+月份*0.7
2 2 6月后 前式+(月份-6)*0.4
2 3 2周后 2*年龄+8
3 6 身长
3 1 出生50cm
3 2 前6月每月长2.5cm
3 3 后6月1.5cm
3 4 1岁75cm
3 5 2岁85cm
3 6 2岁以后身高(cm)=年龄*7+70
4 6 头围(cm)
4 1 新生儿34
4 2 6月42
4 3 1周46
4 4 2岁48
4 5 5岁50
4 6 15岁接近成人
5 3 胸围(cm)
5 1 初生<头2
5 2 1周持平
5 3 后超越头颅约等于小儿周数-1
6 2 婴儿需要
6 1 460kj/kg
6 2 需水150ml/kg.d
7 2 初乳
7 1 4天内
7 2 va1微4
8 2 母乳喂养优点
8 1 营养钙磷缓冲小
8 2 增免温经密产妇
9 2 婴幼儿活动规律
9 1 二抬四翻六会做
9 2 七滚八爬周会走
10 1 喂养次数
10 1 4月6次
11 3 疫苗禁忌
11 1 惊癫敏热染未期
11 2 慢脏化皮1月丙
11 3 迟缺哮乙溃伤忌
12 1 疫苗反应
12 1 中度都有5
13 1 肾上腺皮质激素
13 1 加重水痘
14 1 小儿补液疗法三定
14 1 量、时、性
15 2 输液三份
15 1 累、继、生
15 2 时段 8-12 12-16
16 3 等渗碱
16 1 1.4%nahco3
16 2 1.87%乳酸钠
16 3 均表现为1/6m
17 1 口服补液盐三份都有5
17 1 氯化钠0.35 碳酸氢钠0.25 枸橼酸钾 0.15
18 1 阻胆灰婴
18 1 磺k3高氯灰婴
19 4 混合溶液
19 1 2:1 等张含钠液 2份生理盐水+1份等渗碱
19 2 4:3:2液 2/3张
19 3 2:3:1液 1/2张 用
19 4 生理维持液 4份糖、盐水、并含0.15%kcl的混合液约1/3张,
20 2 使co2CP提高1mmom/L
20 1 5%nahco3 1.2ml/kg
20 2 11.2%乳酸钠0.7ml/kg
21 1 早产儿
21 1 <37
22 1 正常体重
22 1 2千54千
23 1 新生儿学
23 1 健生病防
24 1 生理性黄疸
24 1 都有2
25 1 早产儿存活的主要问题
25 1 缺氧呼衰
26 1 围生期小儿死残主因
26 1 窒息
27 2 新生儿窒息分度
27 1 皮肌心呼弹或插
27 2 青苍松3无0分
28 4 新生儿透明膜病
28 1 活缺附伊肺不张
28 2 呼促声绀细湿罗
28 3 氧氢低碳压高
28 4 肺亮低管充胃阴
29 1 新生儿感染性肺炎 前、中、后时间区分
29 1 24-48h
30 4 新生儿感染性肺炎
30 1 病体蔓窒逆血衣
30 2 枢肺肌免差易感
30 3 呼促声绀细湿罗
30 4 鼻凹不食吐呛奶
31 1 中度脱水补液量
31 1 120-150ml/kg
32 2 体表面积
32 1 <30kg(m**2)=体重kg*0.035+0.1
32 2 >30kg(m**2)=(kg-30)*0.02+1.05
33 1 足月儿
33 1 3742
二 建立和存储到磁盘 本次程序将以上题目存入d盘sj文件夹下,取名为ek,txt文档。见程序甲,数据集a。
程序甲
data a;infile 'd:\sj\ek.txt';input n g x & $138.;run;
data b;set a end=obs_last;if obs_last=1;do i=1 to n;output;end;keep i;run;
proc sql;
create table wxq1638 as select *,normal(0) as w from b
order by calculated w;
data c;set wxq1638(obs=5);run;/*抽取题目数,请根据实际情况界定*/
proc sql;
create table wxq1688 as select * from c,a where n=i;/*将抽取的数字与数据集匹配*/
data d;set wxq1688;no+1;file '桌面\抽查.txt';put no g x $;run;
data e;set d;x1=normal(0);proc sort out=e2;by x1;run;
data f;set e2;keep x;file '桌面\测试.txt';put x $;run;
三 提交“程序甲” 在桌面产生两个文件
<1> 文件“抽查”
1 6 头围(cm)
2 1 新生儿34
3 2 6月42
4 3 1周46
5 4 2岁48
6 5 5岁50
7 6 15岁接近成人
8 2 初乳
9 1 4天内
10 2 va1微4
11 1 喂养次数
12 1 4月6次
13 3 疫苗禁忌
14 1 惊癫敏热染未期
15 2 慢脏化皮1月丙
16 3 迟缺哮乙溃伤忌
17 1 阻胆灰婴
18 1 磺k3高氯灰婴
<2>文件“测试”内容 这个部分就是打乱的文件<1>
迟缺哮乙溃伤忌
阻胆灰婴
4月6次
新生儿34
1周46
慢脏化皮1月丙
2岁48
15岁接近成人
6月42
初乳
磺k3高氯灰婴
惊癫敏热染未期
4天内
va1微4
头围(cm)
疫苗禁忌
5岁50
喂养次数
只要把文件<2>前标上句子号,根<1>都对字符排序,便可根据句子号验证对误,最后对no复原性排序,
就可知道本次操作结果的正确程度。
程序乙
data a1;
input g1 g2 @@;
cards;
1 3 2 1 3 1 4 1 5 3
6 2 7 4 8 5 9 2 10 1
11 1 12 1 13 1 14 1 15 5
16 3 17 4 18 1
;
run;
data a;infile '桌面\测试.txt';input y & $138.;run;
data b1;merge a1 a;proc sort out=b;by y;run;
data c1;infile '桌面\抽查.txt';input no g x & $138.;proc sort out=c;by x;run;
data d;merge c b;if g2=g then good='√';if g2^=g then good= '×';proc sort out=e1;;by no;run;
data e2;set e1;if g2=g then g1=1;else g1=0;sumx+g1;d=sumx/no*100;run;
data e3;set e2 end=obs_last;if obs_last=1;keep d;run;
data f;merge e2 e3(rename=(d=df));drop g1 sumx d no y;proc print;run;
结果:
SAS 系统 2009年08月08日 星期六 下午07时24分52秒 1
Obs g x g2 good df
1 6 头围(cm) 5 × 72.2222
2 1 新生儿34 1 √ .
3 2 6月42 2 √ .
4 3 1周46 3 √ .
5 4 2岁48 4 √ .
6 5 5岁50 4 × .
7 6 15岁接近成人 5 × .
8 2 初乳 1 × .
9 1 4天内 1 √ .
10 2 va1微4 1 × .
11 1 喂养次数 1 √ .
12 1 4月6次 1 √ .
13 3 疫苗禁忌 3 √ .
14 1 惊癫敏热染未期 1 √ .
15 2 慢脏化皮1月丙 2 √ .
16 3 迟缺哮乙溃伤忌 3 √ .
17 1 阻胆灰婴 1 √ .
18 1 磺k3高氯灰婴 1 √ .
当然,对于记忆力惊人的牛人,不必采用以上具有诱导性的程序。可以直接调用题干,然后zsas中默写后提交便可。
程序丙(由程序甲改造而来)
data a;infile 'd:\sj\ek.txt';input n g x & $138.;run;
data b;set a end=obs_last;if obs_last=1;do i=1 to n;output;end;keep i;run;
proc sql;
create table wxq1638 as select *,normal(0) as w from b
order by calculated w;
data c;set wxq1638(obs=5);run;/*抽取题目数*/
proc sql;
create table wxq1688 as select * from c,a where n=i;/*将抽取的数字与数据集匹配*/
data d;set wxq1688;no+1;z=dif(n);proc print;run;
data e1;set d;where z^=0;file '桌面\抽查.txt';put x $;run;
data e2;set d;where z=0;file '桌面\测试.txt';put x $;run;
得到 “抽查”(题干)
年龄分期
初乳
使co2CP提高1mmom/L
新生儿学
新生儿感染性肺炎 前、中、后时间区分
得到“测试”(从题干下分离出来的内容,也就是需要记忆的部分)
胎新婴幼学龄青
4天内
va1微4
5%nahco3 1.2ml/kg
11.2%乳酸钠0.7ml/kg
健生病防
24-48h
程序丁(供牛人在sas中默写并提交的程序)
options ls=256;
data a;
input x & $256.;
cards;
胎新婴幼学龄青
4天内
5%nahco3 1.2ml/kg
11.2%乳酸钠0.7ml/kg
健康生病防
24-48h
;
run;
data b;
infile '桌面\测试.txt';input y & $138.;run;
data c;merge a b;if x=y then good='√';else good='×';if x=y then g=1;else g=0;sumx+1;sumg+g;d=sumg/sumx*100;
data d;set c end=obs_last;if obs_last=1;keep d;run;
data e;merge c d(rename=(d=df));keep x y good df;proc print;run;
结果2
SAS 系统 2009年08月08日 星期六 下午08时43分01秒 1
Obs x y good df
1 胎新婴幼学龄青 胎新婴幼学龄青 √ 28.5714
2 4天内 4天内 √ .
3 5%nahco3 1.2ml/kg va1微4 × .
4 11.2%乳酸钠0.7ml/kg 5%nahco3 1.2ml/kg × .
5 健康生病防 11.2%乳酸钠0.7ml/kg × .
6 24-48h 健生病防 × .
7 24-48h × .
鉴于sas的强大,其文本编辑可实现很多功能,比如还可以将每次正确、错误的记录输出到不同文件名中存储起来,凡是有用的信息都可以加以处理和利用,更重要的是其灵活性至今未见有其他统计学软件可以比拟。
注意!!!
严重警告的内容同前,不再赘述
详见 “http://www.pinggu.org/bbs/b68i392413p1.html”。
对于医者而言,需要经常温习,测试已经学习过的内容,以加深印象,巩固知识。现在,通过网络可以下载到很多的电子试卷,给我们检测自己的能力带来很大方便。同时注意到
这些电子内容适用范围狭窄,不便于操作,是因为其形式固定、僵化造成种种不便:(1)排列顺序固定,过于规律,看过第一遍,以后就容易凭经验‘顺竿遛’,再次测试达不到目的,其在随机性上需要大大改良;(2)题数不能灵活变动<1>不能根据实际情况添加有用内容<2>在测试时必须完成指定题数,这在个体诊所及家务事多的人时间不允许;(3)目前仅见选择题型的电子书,而能抽查,考核背诵、记忆内容的未见,而以上及更多没能详细阐明的缺陷都可以被sas消除。基于此,简介一下可能帮助记忆训练的sas程序。
实际上这些都是“常用抽样sas程序”的拓展,“http://www.pinggu.org/bbs/b68i392413p1.html”。
一 首先搞一个示例文件 可见有33个需要记忆的题目:第一列题号;第二列是题号下对应的句子号,每个句子号的第一行代表该题干下有几个需要记诵的句子;第三列即题干和对应的句子。
1 1 年龄分期
1 1 胎新婴幼学龄青
2 3 小儿体重
2 1 1周内体重(kg)+月份*0.7
2 2 6月后 前式+(月份-6)*0.4
2 3 2周后 2*年龄+8
3 6 身长
3 1 出生50cm
3 2 前6月每月长2.5cm
3 3 后6月1.5cm
3 4 1岁75cm
3 5 2岁85cm
3 6 2岁以后身高(cm)=年龄*7+70
4 6 头围(cm)
4 1 新生儿34
4 2 6月42
4 3 1周46
4 4 2岁48
4 5 5岁50
4 6 15岁接近成人
5 3 胸围(cm)
5 1 初生<头2
5 2 1周持平
5 3 后超越头颅约等于小儿周数-1
6 2 婴儿需要
6 1 460kj/kg
6 2 需水150ml/kg.d
7 2 初乳
7 1 4天内
7 2 va1微4
8 2 母乳喂养优点
8 1 营养钙磷缓冲小
8 2 增免温经密产妇
9 2 婴幼儿活动规律
9 1 二抬四翻六会做
9 2 七滚八爬周会走
10 1 喂养次数
10 1 4月6次
11 3 疫苗禁忌
11 1 惊癫敏热染未期
11 2 慢脏化皮1月丙
11 3 迟缺哮乙溃伤忌
12 1 疫苗反应
12 1 中度都有5
13 1 肾上腺皮质激素
13 1 加重水痘
14 1 小儿补液疗法三定
14 1 量、时、性
15 2 输液三份
15 1 累、继、生
15 2 时段 8-12 12-16
16 3 等渗碱
16 1 1.4%nahco3
16 2 1.87%乳酸钠
16 3 均表现为1/6m
17 1 口服补液盐三份都有5
17 1 氯化钠0.35 碳酸氢钠0.25 枸橼酸钾 0.15
18 1 阻胆灰婴
18 1 磺k3高氯灰婴
19 4 混合溶液
19 1 2:1 等张含钠液 2份生理盐水+1份等渗碱
19 2 4:3:2液 2/3张
19 3 2:3:1液 1/2张 用
19 4 生理维持液 4份糖、盐水、并含0.15%kcl的混合液约1/3张,
20 2 使co2CP提高1mmom/L
20 1 5%nahco3 1.2ml/kg
20 2 11.2%乳酸钠0.7ml/kg
21 1 早产儿
21 1 <37
22 1 正常体重
22 1 2千54千
23 1 新生儿学
23 1 健生病防
24 1 生理性黄疸
24 1 都有2
25 1 早产儿存活的主要问题
25 1 缺氧呼衰
26 1 围生期小儿死残主因
26 1 窒息
27 2 新生儿窒息分度
27 1 皮肌心呼弹或插
27 2 青苍松3无0分
28 4 新生儿透明膜病
28 1 活缺附伊肺不张
28 2 呼促声绀细湿罗
28 3 氧氢低碳压高
28 4 肺亮低管充胃阴
29 1 新生儿感染性肺炎 前、中、后时间区分
29 1 24-48h
30 4 新生儿感染性肺炎
30 1 病体蔓窒逆血衣
30 2 枢肺肌免差易感
30 3 呼促声绀细湿罗
30 4 鼻凹不食吐呛奶
31 1 中度脱水补液量
31 1 120-150ml/kg
32 2 体表面积
32 1 <30kg(m**2)=体重kg*0.035+0.1
32 2 >30kg(m**2)=(kg-30)*0.02+1.05
33 1 足月儿
33 1 3742
二 建立和存储到磁盘 本次程序将以上题目存入d盘sj文件夹下,取名为ek,txt文档。见程序甲,数据集a。
程序甲
data a;infile 'd:\sj\ek.txt';input n g x & $138.;run;
data b;set a end=obs_last;if obs_last=1;do i=1 to n;output;end;keep i;run;
proc sql;
create table wxq1638 as select *,normal(0) as w from b
order by calculated w;
data c;set wxq1638(obs=5);run;/*抽取题目数,请根据实际情况界定*/
proc sql;
create table wxq1688 as select * from c,a where n=i;/*将抽取的数字与数据集匹配*/
data d;set wxq1688;no+1;file '桌面\抽查.txt';put no g x $;run;
data e;set d;x1=normal(0);proc sort out=e2;by x1;run;
data f;set e2;keep x;file '桌面\测试.txt';put x $;run;
三 提交“程序甲” 在桌面产生两个文件
<1> 文件“抽查”
1 6 头围(cm)
2 1 新生儿34
3 2 6月42
4 3 1周46
5 4 2岁48
6 5 5岁50
7 6 15岁接近成人
8 2 初乳
9 1 4天内
10 2 va1微4
11 1 喂养次数
12 1 4月6次
13 3 疫苗禁忌
14 1 惊癫敏热染未期
15 2 慢脏化皮1月丙
16 3 迟缺哮乙溃伤忌
17 1 阻胆灰婴
18 1 磺k3高氯灰婴
<2>文件“测试”内容 这个部分就是打乱的文件<1>
迟缺哮乙溃伤忌
阻胆灰婴
4月6次
新生儿34
1周46
慢脏化皮1月丙
2岁48
15岁接近成人
6月42
初乳
磺k3高氯灰婴
惊癫敏热染未期
4天内
va1微4
头围(cm)
疫苗禁忌
5岁50
喂养次数
只要把文件<2>前标上句子号,根<1>都对字符排序,便可根据句子号验证对误,最后对no复原性排序,
就可知道本次操作结果的正确程度。
程序乙
data a1;
input g1 g2 @@;
cards;
1 3 2 1 3 1 4 1 5 3
6 2 7 4 8 5 9 2 10 1
11 1 12 1 13 1 14 1 15 5
16 3 17 4 18 1
;
run;
data a;infile '桌面\测试.txt';input y & $138.;run;
data b1;merge a1 a;proc sort out=b;by y;run;
data c1;infile '桌面\抽查.txt';input no g x & $138.;proc sort out=c;by x;run;
data d;merge c b;if g2=g then good='√';if g2^=g then good= '×';proc sort out=e1;;by no;run;
data e2;set e1;if g2=g then g1=1;else g1=0;sumx+g1;d=sumx/no*100;run;
data e3;set e2 end=obs_last;if obs_last=1;keep d;run;
data f;merge e2 e3(rename=(d=df));drop g1 sumx d no y;proc print;run;
结果:
SAS 系统 2009年08月08日 星期六 下午07时24分52秒 1
Obs g x g2 good df
1 6 头围(cm) 5 × 72.2222
2 1 新生儿34 1 √ .
3 2 6月42 2 √ .
4 3 1周46 3 √ .
5 4 2岁48 4 √ .
6 5 5岁50 4 × .
7 6 15岁接近成人 5 × .
8 2 初乳 1 × .
9 1 4天内 1 √ .
10 2 va1微4 1 × .
11 1 喂养次数 1 √ .
12 1 4月6次 1 √ .
13 3 疫苗禁忌 3 √ .
14 1 惊癫敏热染未期 1 √ .
15 2 慢脏化皮1月丙 2 √ .
16 3 迟缺哮乙溃伤忌 3 √ .
17 1 阻胆灰婴 1 √ .
18 1 磺k3高氯灰婴 1 √ .
当然,对于记忆力惊人的牛人,不必采用以上具有诱导性的程序。可以直接调用题干,然后zsas中默写后提交便可。
程序丙(由程序甲改造而来)
data a;infile 'd:\sj\ek.txt';input n g x & $138.;run;
data b;set a end=obs_last;if obs_last=1;do i=1 to n;output;end;keep i;run;
proc sql;
create table wxq1638 as select *,normal(0) as w from b
order by calculated w;
data c;set wxq1638(obs=5);run;/*抽取题目数*/
proc sql;
create table wxq1688 as select * from c,a where n=i;/*将抽取的数字与数据集匹配*/
data d;set wxq1688;no+1;z=dif(n);proc print;run;
data e1;set d;where z^=0;file '桌面\抽查.txt';put x $;run;
data e2;set d;where z=0;file '桌面\测试.txt';put x $;run;
得到 “抽查”(题干)
年龄分期
初乳
使co2CP提高1mmom/L
新生儿学
新生儿感染性肺炎 前、中、后时间区分
得到“测试”(从题干下分离出来的内容,也就是需要记忆的部分)
胎新婴幼学龄青
4天内
va1微4
5%nahco3 1.2ml/kg
11.2%乳酸钠0.7ml/kg
健生病防
24-48h
程序丁(供牛人在sas中默写并提交的程序)
options ls=256;
data a;
input x & $256.;
cards;
胎新婴幼学龄青
4天内
5%nahco3 1.2ml/kg
11.2%乳酸钠0.7ml/kg
健康生病防
24-48h
;
run;
data b;
infile '桌面\测试.txt';input y & $138.;run;
data c;merge a b;if x=y then good='√';else good='×';if x=y then g=1;else g=0;sumx+1;sumg+g;d=sumg/sumx*100;
data d;set c end=obs_last;if obs_last=1;keep d;run;
data e;merge c d(rename=(d=df));keep x y good df;proc print;run;
结果2
SAS 系统 2009年08月08日 星期六 下午08时43分01秒 1
Obs x y good df
1 胎新婴幼学龄青 胎新婴幼学龄青 √ 28.5714
2 4天内 4天内 √ .
3 5%nahco3 1.2ml/kg va1微4 × .
4 11.2%乳酸钠0.7ml/kg 5%nahco3 1.2ml/kg × .
5 健康生病防 11.2%乳酸钠0.7ml/kg × .
6 24-48h 健生病防 × .
7 24-48h × .
鉴于sas的强大,其文本编辑可实现很多功能,比如还可以将每次正确、错误的记录输出到不同文件名中存储起来,凡是有用的信息都可以加以处理和利用,更重要的是其灵活性至今未见有其他统计学软件可以比拟。
注意!!!
严重警告的内容同前,不再赘述
详见 “http://www.pinggu.org/bbs/b68i392413p1.html”。