У меня есть два набора данных.У первого есть чье-то местоположение и расстояние в милях до разных направлений.Второй набор данных содержит список всех пунктов назначения.Я хочу, чтобы R сделал столбец, который вытягивает имя каждого пункта назначения, который находится на расстоянии менее 1000 миль.
Вот пример первого набора данных:
library(tidyverse)
start_location <- tibble(location = c("Anhui China", "Amersfoort Utrecht Netherlands", "Akita Akita Japan"),
lon = c(117.92, 5.38, 140.1),
lat = c(30.60, 52.16, 39.71),
dist_beijing = c(658, 5686, 1250),
dist_shanghai = c(241, 5510, 1200),
dist_tokyo = c(1300, 5775, 280),
dist_prague = c(5173, 417, 5415),
dist_pomezia = c(5555, 474, 5927),
dist_antwerp = c(5498, 77, 5612))
Вот второй набор данных
library(tidyverse)
destinations <- tibble(destinations = c("beijing china", "shanghai china", "tokyo japan", "prague czech republic", "pomezia italy", "antwerp belgium"),
lon = c(116.4, 121.47, 139.65, 14.43, 12.50, 4.40),
lat = c(39.90, 31.23, 35.67, 50.07, 41.67, 51.22))
И вот как я хочу, чтобы набор данных выглядел следующим образом:
library(tidyverse)
solution <- tibble(location = c("Anhui China", "Amersfoort Utrecht Netherlands", "Akita Akita Japan"),
lon = c(117.92, 5.38, 140.1),
lat = c(30.60, 52.16, 39.71),
nearest1 = c("shanghai china", "antwerp belgium", "tokyo japan"),
nearest2 = c("beijing china", "prague czech republic", NA),
nearest3 = c(NA, "pomezia italy", NA))
Я знаю, как заставить его найти кратчайшее расстояние, но я изо всех сил стараюсь, чтобы он дал имя столбцадля каждого.Кроме того, хотя у этого было три ближайших, я не обязательно ограничиваю его только 3. Я просто хочу, чтобы он делал столбцы для каждого пункта назначения, который меньше 1000 миль.
Я предполагаю, что должен использовать case_whenи pmap, но я не могу понять, как добавить оператор if и разрешить ему создавать несколько столбцов.
Если он не может легко создавать столбцы, я также могу сделать так, чтобы в нем был один столбец со спискомвсе направления до 1000 миль по порядку (например, если «Пекин, Китай, Шанхай, Китай»), потому что тогда я мог бы, по крайней мере, выделить его с помощью тидира.
Также, если возможно, я бы хотелаккуратное решение, если это возможно.
Спасибо !!