【发布时间】:2015-04-15 14:22:06
【问题描述】:
我正在尝试(内部)基于我拥有的相似性函数连接两个数据框。 例如:
data1<-data.frame(a=c(1,2,3),lat=c(38.862976,37.878146,36.825658), lon=c(-99.336782,-99.326054,-98.475976))
data2<-data.frame(b=c(10,20),lat=c(38.863412,37.877333), lon=c(-99.336701,-99.325151))
并给定一个相似函数:
are.close(lat1,long1,lat2,long2)
类似
data3<-join(a=data1,b=data2,by=c(lat,lon),FUN=are.close(a.lat,a.lon,b.lat,b.lon))
我希望收到的输出是:
a b lat lon
1 1 10 38.862976 -99.336782
2 2 20 37.878146 -99.326054
lat/lon 属于其中一个表的位置(不管哪个表,比如说第一个)。
我检查的所有连接/合并方法都不允许您定义连接是如何发生的。它只允许您指定 col1=col2 之类的内容。
有没有一种方法可以提高计算效率(不是通过在两组上运行两个循环)?
【问题讨论】:
标签: r join data.table plyr dplyr