比较SAS中列内的值

比较SAS中列内的值,sas,comparison,Sas,Comparison,我还没有找到这个问题的答案,尽管有一些类似的答案 我有一个大型数据集(900万行),其中包含 id列(“id”) 如果“id”是该期间的新标识符(“新id”) 纬度柱(“lat”) 和经度列(“长”) 在SAS中,我想做的是,使用geodist函数,比较每一行之间的距离,并创建一个指示器“附近”,如果该id和任何其他id之间的距离小于50英里,则该指示器等于1,对于另一行,“new_id”=1 下面是我试图做的一些伪代码。任何帮助都将不胜感激。谢谢 伪代码: For all_rows1 in

我还没有找到这个问题的答案,尽管有一些类似的答案

我有一个大型数据集(900万行),其中包含

  • id列(“id”)
  • 如果“id”是该期间的新标识符(“新id”)
  • 纬度柱(“lat”)
  • 和经度列(“长”)
在SAS中,我想做的是,使用geodist函数,比较每一行之间的距离,并创建一个指示器“附近”,如果该id和任何其他id之间的距离小于50英里,则该指示器等于1,对于另一行,“new_id”=1

下面是我试图做的一些伪代码。任何帮助都将不胜感激。谢谢

伪代码:

For all_rows1 in data
    For all_rows2 in data
        if (geo_dist(all_rows1(lat), all_rows1(long), all_rows2(lat), all_rows2(long) < 50) 
        and all_rows2(new_id) = 1 
            then all_rows1(nearby) = 1
用于数据中的所有行1
对于数据中的所有_行2
如果(地理距离(所有行1(纬度)、所有行1(长)、所有行2(纬度)、所有行2(长)<50)
所有行2(新的id)=1
然后所有_行1(附近)=1

您需要发布一些示例数据,这听起来像是一个试图稀疏的距离矩阵。最终会有很多数据。以下是如何计算距离,但我不确定您想要什么作为输出。如果50内有2个存储,会发生什么情况?感谢您的快速回复。只要有1个存储,就会得到“1”。不过,我相信你发送的链接解决了我的问题。我真的很感谢你的帮助。这个故事中的“句号”是什么角色?你是否定期有一个新文件?你的行中有多少百分比有
new\u id=1