全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1872 6
2013-11-20
悬赏 400 个论坛币 已解决
又有"钱"可以向大家请教了,是一个合并clinical sites的问题。
现有79个sites,它们的ID、邮编和病人总数如下。
复制代码
希望通过合并一些sites来达到每个site的最低病人数---20,大致步骤为:
(1)如果某个site人数不足20,则把它与离它最近的site合并,生成一个新site并删除原来俩sites;
(2)如果(1)之后所有site都够20人了,终止;
(3)如果合并过的site还是不够20人,重复(1)。
site间的距离根据sashelp.geocode里提供的经纬度算,合并过的site的经纬度按合并前俩sites的经纬度平均(没什么好办法)。
你可以自己规定一个顺序保证结果唯一。
因为一般不会超过1000个sites,所以效率不是问题,在下这个粗人只要求程序简单易懂。

最佳答案

吕小布韦 查看完整内容

proc sort data=sites out=sort; by zip; run; data a; set sashelp.zipcode; keep zip x y; run; data b; merge a(in=ina) sort(in=insort); by zip; if insort; run; proc sort data=b out=b1; by population; run; data b2; length site $30.; x1=0; y1=0; site='0'; population1=0; n=0; set b1; if population>=20 then output; else do; do while(population1
二维码

扫码加我 拉你入群

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

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

全部回复
2013-11-20 23:02:32
proc sort data=sites out=sort;
by zip;
run;

data a;
set sashelp.zipcode;
keep zip x y;
run;

data b;
merge a(in=ina) sort(in=insort);
by zip;
if insort;
run;
proc sort data=b out=b1;
by  population;
run;
data b2;
length site $30.;
x1=0;
y1=0;
site='0';
population1=0;
n=0;
set b1;        if population>=20 then output;
else
do;
do while(population1<20);
set b1;
population1=(population1+population);
x1=sum(x1,x);
y1=sum(y1,y);
n=n+1;
end;
x1=x1/n;
y1=y1/n;
output;
end;
;
keep x1 y1 population1 zip;
run;
坐等被优化...如果值得优化的话..局限性如下: 不知道那几个site合并起来了; 首先按照pop排序的, 所以前面几个比较小pop的合并在了一起,
二维码

扫码加我 拉你入群

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

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

2013-11-21 08:37:39
你这里没有经纬度信息啊。
二维码

扫码加我 拉你入群

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

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

2013-11-22 11:56:46
webgu 发表于 2013-11-21 08:37
你这里没有经纬度信息啊。
说错了,是从sashelp.zipcode里面取。
另外,拜托别给我easy money啦
二维码

扫码加我 拉你入群

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

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

2013-11-22 11:57:57
吕小布韦 发表于 2013-11-20 23:02
proc sort data=sites out=sort;
by zip;
run;
谢谢,你是唯一的参与者,所以就是最佳的。
二维码

扫码加我 拉你入群

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

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

2013-11-22 15:51:28
邓贵大 发表于 2013-11-22 11:56
说错了,是从sashelp.zipcode里面取。
另外,拜托别给我easy money啦
NOT EASY MONEY, BUT SOME COMPENSATION.
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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