加载临时数组并循环遍历它

时间:2015-09-03 17:49:40

标签: sas

我有两个包含位置信息的数据集 - 纬度和经度。

我正在尝试找到从数据集B到数据集A中的位置的最近位置。为此,我尝试使用临时数组但由于某种原因我不断出现循环错误。我以前做了很多次,但今天看不到我的错误!

操场数据集相对较小(647),住宅数据集的观测值约为300K。

data house_park;

if _n_=1 then i=1 to 647;
set playground (rename=(latitude=lat longitude=long));
array plat(647) _temporary_;
array plong(647) _temporary_;
array park(647) $100 _temporary_;

plat(i)=lat;
plong(i)=long;
park(i)=name;
end;
end;

length nearest_park $100.;
min_dist=999999;
nearest_park="";

do k=1 to 647;
dist=geodist(latitude, longitude, plat(k), plong(k));
if dist<min_dist then min_dist=dist;
nearest_park=park(k);
end;
run;

1 个答案:

答案 0 :(得分:1)

在您的代码的第2行,您有:

if _n_=1 then i=1 to 647;

你的意思是改为输入吗?

if _n_=1 then do i=1 to 647;

此外,您只有一套声明 - 我认为您故意遗漏了从住宅数据集中读取行的代码部分?