【发布时间】:2019-01-28 17:38:45
【问题描述】:
我有这个样本数据:
df <- tibble(
"City1" = c("New York", "Boston", "Chicago"),
"City2" = c("Chicago", "Cleveland", "Atlanta"))
假设City1 是起点,City2 是终点。即,一个人从纽约前往芝加哥。
我想为起始纬度添加一列,为起始经度添加一列,并为目的地城市做同样的事情。总之,我想要四个新专栏。我已经有了坐标。
如何分配坐标?我曾尝试使用case_when,但我不确定如何将坐标传送到多个列。做一栏很容易:
library(tidyverse)
# The numbers after the cities are the latitudes
df <- df %>%
mutate(
City1_lat = case_when(
City1 == 'New York' ~ 40.7128,
City1 == 'Boston' ~ 42.3601,
City1 == 'Chicago' ~ 41.8781
)
)
如何扩展它以添加到 City1_lon 列中?尝试尽可能简化这一点,因为我有几千行起点/终点。 dplyr 或 base 解决方案都有效。我会将其扩展到目的地城市City2。供参考:
New York: 40.7128, 74.0060
Boston: 42.3601, 71.0589
Chicago: 41.8781, 87.6298
Cleveland: 41.4993, 81.6944
Atlanta: 33.7490, 84.3880
【问题讨论】: