全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1241 4
2012-04-01
悬赏 15 个论坛币 未解决
现在我的数据结构是这样的:
number 食物1  数量1  单位1  食物2 数量2 单位2  食物3......
食物是用代码表示的,但每一个人吃的食物都不一样,故每个人的代码都不一样。单位是指两或斤或公斤,是用0,1,2表示的。
现在我有这些食物所含营养素的量,结构是这样的:
食物名称(代码表示)  蛋白质  热量  脂肪
.
.
.
.

问题是:想求出每个人摄入的蛋白质、热量和脂肪的量。如何做。
二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-2 01:24:40
1. Assume that your first database is "a", the data structure is " food1 amount1 unit1 food2 amount2 unit2 food3 ...
2. Assume that your second database is "b", the data structure is "food protein energy fat"

use a, clear
gen person_id=_n
reshape long food amount unit, i(person_id) j(group)
merge m:1 food using b, nogenerate keep(match)
gen total_protein=proten*unit*amount            //this is my good guess, you can use your own formula
gen total_energy=energy*unit*amount
gen total_fat=fat*unit*amount
sort id group
save a_b_combine, replace
collapse (sum) total_protein total_energy total_fat, by(person_id)
save results, replace           //you should be allset


二维码

扫码加我 拉你入群

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

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

2012-4-2 11:00:45
hplcdadong 发表于 2012-4-2 01:24
1. Assume that your first database is "a", the data structure is " food1 amount1 unit1 food2 amount2 ...
merge的时候database a里食物代码会自动匹配database b里的吗。。。那merge完了的数据结构是怎样的呢
二维码

扫码加我 拉你入群

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

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

2012-4-3 02:19:11
1) Yes if you use the same codes for food in your two databases (such as 1 for orange, 2 for banana,...)
2)After merging, the data structure should still be in long format like this:
person_id group food amount unit protein energy fat
二维码

扫码加我 拉你入群

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

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

2012-4-4 14:12:06
非常感谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群