Как изменить фрейм данных R так, чтобы координаты были доступны для чтения ggplot - PullRequest
0 голосов
/ 25 марта 2020

Я работаю с набором данных, который отображает места преступления. К сожалению, данные о преступлении хранятся в виде одного столбца в виде текста в формате (x.xxxxxx, y.yyyyyyyy). Количество знаков после запятой варьируется между точками данных. Этот набор данных содержит сотни точек данных. Как я могу изменить этот конкретный столбец так, чтобы координаты x и y были разделены и сохранены в двух отдельных столбцах во фрейме данных?

Спасибо за помощь

1 Ответ

0 голосов
/ 25 марта 2020

Вот пример с поддельными данными:

# Fake data
d = data.frame(x=c("(8.4344, 93.593)", "(6.44, 91.3)"), stringsAsFactors=FALSE)

library(tidyverse)

d %>% 
  # Remove parentheses
  mutate(x = gsub("\\(|\\)", "", x)) %>% 
  # Separate into two columns
  separate(x, into=c("lat","lon"), sep=", ") %>% 
  # Convert to numeric
  mutate(across(lat:lon, as.numeric))
     lat    lon
1 8.4344 93.593
2 6.4400 91.300

Или, используя регулярные выражения для извлечения широты и долготы:

d %>% 
  mutate(lat = str_extract(x, "(?<=\\()[0-9-\\.]*"),
         lon = str_extract(x, "(?<=, )[0-9-\\.]*"),
         across(lat:lon, as.numeric))
...