Моего набора данных выглядит следующим образом:Определение местоположения с помощью координат
ID Start_Datetime End_Datetime Longitude Latitude
2.011e+09 2011-02-01 00:47:35 2011-02-01 00:57:05 -73.98839 40.75504
Я хочу, чтобы определить, если каждая строка произошла в одном из моих мест, представляющего интереса, например аэропорт. Для этого я делаю следующее:
tol <- 0.001
for (i in 1:length(DataS$latitude)){
if(abs(DataSet$latitude[i] - 40.644305) < tol |
abs(DataSet$latitude[i] - 40.642160) < tol)
if(abs(DataSet$longitude[i] - -73.790517) < tol |
abs(DataSet$longitude[i] - -73.788895) < tol)
{
DataSet$POI[i] <- 1
}
}
Мой набор данных имеет более чем 20 миллионов строк и этот код занимает много времени. Есть ли другой способ, которым я могу заставить это работать более эффективно? Может быть, функция в пакете ggmap, которую я адаптирую к этому?
Спасибо,
Посмотрите на 'ifelse' – jaimedash
также, если я правильно понимаю, вопрос не имеет ничего общего с координатами или POI. это просто о том, чтобы эффективно создавать новый столбец, создавая условия для других столбцов. рассмотрите возможность перезаписи заголовка – jaimedash
с помощью одной из функций apply-familiy. это должно быть намного быстрее, чем for-loop в R. – epo3