如果函数返回的值小于R中的某个数字,则运行计数

时间:2019-07-01 17:45:39

标签: r geolocation

我使用Imap包和gdist函数创建了一个函数。我的函数只是通过纬度和经度坐标作为变量来测量距离。

我有一个特定的多头/多头,我想从多头/多头列表中测量距离。我想将此列表输入函数中,以英里为单位测量距离。

如果距离小于50英里,我希望它计算条目。理想情况下,我会得到目标纬度/经度50英里以内的条目数,以便将其除以条目总数,这样就可以得到半径50英里以内条目的百分比。我希望这是有道理的。

我尝试使用if语句,但我正在删除。我尝试研究countif语句,但找不到有效的语句。我希望我可以集成一个for循环和/或if语句以计算少于50英里的位置。

SFlong <- -90.0490    
SFlat <- 35.1495

ship <- function(x, y) {
dist <- gdist(
lon.1 = SFlong,
lat.1 = SFlat,
lon.2 = x,
lat.2 = y,
units = "miles",
a = 6378137.0,
b = 6356752.3142,
verbose = FALSE
)
return(dist)
}

这里是示例输入:

structure(list(zip = c("00210", "00210", "00210", "00210", "00210"
), city.x = c("Portsmouth", "Portsmouth", "Portsmouth", "Portsmouth", 
"Portsmouth"), state = c("NH", "NH", "NH", "NH", "NH"), latitude = 
c(43.005895, 
43.005895, 43.005895, 43.005895, 43.005895), longitude = c(-71.013202, 
-71.013202, -71.013202, -71.013202, -71.013202), city.y = c("GARDABAER", 
"GARDAB<c6>R", "???", "HELSINKI", "????????"), count = c(7L, 
1L, 1L, 5L, 2L)), row.names = c(NA, 5L), class = "data.frame")

这是计算距离的功能。提供x和y时,它可以工作。我希望它浏览经纬度/经度列表,找出距离不足50英里的纬度/经度。

我只是无法勾勒出将获得我想要的代码的逻辑。任何建议将不胜感激,或者只是朝着总体方向发展。谢谢。

0 个答案:

没有答案