作者yashawnya (yashawnya)
看板R_Language
标题[问题] 关於双重回圈
时间Wed Nov 23 22:32:46 2016
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题描述]:
抱歉,刚学习R语言一个月还很菜,第一次上来发问,如果排版和问题叙述不好请多包涵
。
目前我有两个dataframe先称为a和b 两个dataframe的资料量不相同,但栏位都一样有三
个
分别为经度、纬度、和一个计算的值
然後目标是用gdist(a$long,a$lat,b$long,b$lat,units = "km")
来计算a的所有点到b的所有点的分别距离
如果某个b点有距离某个a点大於10公里的就舍弃掉那个b点
现在我是使用双层回圈来进行处理
想法大概如下
while(x<=a资料量){
y<-1
while(y<=b资料量){
if(a第x列和b第y列距离<=10)
保留b
y<-y+1
}
x<-x+1
}
但是只要a或是b的资料量大一点,速度就会非常慢
想请问版上大大有没有比较好的办法处理这方面的问题
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.150.150.3
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1479911568.A.F76.html
1F:→ celestialgod: 搭配gdist.total就可以很快算了吧11/23 22:40
2F:→ celestialgod: 给个范例资料,跟使用的套件,我再回一篇详细的11/23 22:40
已站内信资料,感谢大大
※ 编辑: yashawnya (118.150.150.3), 11/23/2016 23:07:21