SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 934|回复: 2
打印 上一主题 下一主题

各位大侠,请教一个关于如何为营养素计算编程的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2005-7-28 20:47:39 | 只看该作者

各位大侠,请教一个关于如何为营养素计算编程的问题

<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
各位大侠,我要计算每个研究对象一天中各种营养素摄入量,有两个数据库,第一个是研究对象一天中食物摄入量的数据库,变量sequence是研究对象编号,food1  food2  food3分别表示该研究对象一天中相应食物的摄入量(g),如下

sequence  food2  food4    food5
01       195     125     136
02       268     248     362
03       172     216     127
04       238     215     149
05       264     371     356  

第二个数据库是营养素数据库,fooditem表示食物编号,fat  protein  fiber分别表示每种食物每100g含有相应营养素的量,如下

fooditem  fat  protein  fiber
food1    13   21     2.5
food2    1.7  14     1.3
food3    0.9  25     4.3
food4    3.6  15     5.6
food5    0.4  13     2.6
food6    1.9  9.6     8.3

我的思路是将第二个营养素数据库进行转置,以食物编号作列变量,以营养素作行变量,然后将两个数据库合并,用食物摄入量乘以该食物中的各种营养素含量,最终求出营养素摄入量。
但是我试了几种方法,两个数据库合并的都不理想,各位大侠,有没有什么好办法,希望不吝赐教,谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2005-7-28 22:24:46 | 只看该作者

不是最好的办法, 但是一条解决途径

*步骤1;
data a;
input sequence food2 food4 food5 ;
cards;
01 195 125 136
02 268 248 362
03 172 216 127
04 238 215 149
05 264 371 356
;
data a1; set a;
array food(3)  food2 food4 food5;
do i=1 to 3 ;
   foodno=i; foodwt=food(i); output;
end;
keep sequence foodno foodwt;
run;
proc sort; by foodno; run;
proc print; run;

*步骤2;
data  b;
input fooditem $ fat protein fiber;
cards;
food1 13 21 2.5
food2 1.7 14 1.3
food3 0.9 25 4.3
food4 3.6 15 5.6
food5 0.4 13 2.6
food6 1.9 9.6 8.3
;
data b1;
set b;
foodno=substr(fooditem,5)*1;
run;
proc sort; by foodno; run;

proc print; run;

data c; merge a1 b1; by foodno; run;
proc print; run;

*步骤3:
再利用乘法 求每个对象各种食物营养素摄入量, 然后利用means过程或report 过程对每个对象全部食物营养素摄入量纵向求和.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2005-8-2 16:38:52 | 只看该作者

向热心的人们敬礼

好办法  谢谢   <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-3 07:22 , Processed in 0.068829 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表