Выполнение подсчета, если функция возвращает меньше определенного числа в R - PullRequest
1 голос
/ 01 июля 2019

Я сделал функцию, используя пакет Imap и функцию gdist. Моя функция просто проходит через координаты широты и долготы в качестве переменных для измерения расстояния.

У меня есть один конкретный длинный / лат, который я хочу измерить на расстоянии от списка длинных / лат. Я хочу добавить этот список в свою функцию для измерения расстояния в милях.

Если расстояние меньше 50 миль, я хочу, чтобы он считал запись. В идеале, я бы получал количество записей в пределах 50 миль от моей целевой длины / широты, чтобы я мог разделить его на общее количество записей, чтобы я мог получить процент записей в радиусе 50 миль. Я надеюсь, что это имеет смысл.

Я пытался использовать оператор if, но вычеркнул. Я пытался исследовать показания контраргумента, но не могу найти рабочее. Я надеюсь, что смогу интегрировать цикл 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")

Это функция для расчета расстояния. Это работает, когда предоставлены х и у. Я хочу, чтобы он пролистал список латов и длин, нашел расстояние менее 50 миль и сосчитал их.

Я просто не могу отобразить логику кода, который даст мне то, что я хочу. Любые предложения будут с благодарностью или просто подтолкнуть в общем направлении. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...