разбиение значений столбца ячеек в R - PullRequest
0 голосов
/ 09 октября 2019

У меня есть DataFrame с именем SF_Fire со столбцом «Location», который содержит как долготу, так и широту местоположения. См. Код ниже:

SF_fire $ Местоположение [1] [1] (37.78515100003, -122.426449)

Когда я вызываю значение столбца, возвращается, чтовывод - целое число.

typeof (SF_fire $ Location [1]) [1] "integer"

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

Кто-нибудь знает, как это можно решить?

Ответы [ 3 ]

0 голосов
/ 09 октября 2019

Является ли запись в Location строкой, разделенной запятой? Например, "(37.78515100003, -122.426449)"

Если это так, вы можете сначала удалить круглые скобки, разделить каждую строку запятой, преобразовать в числовое значение, превратить в массив данных и назначить имена столбцов:

df <- gsub('[\\(\\)]', '', SF$Location)
df <- strsplit(df, ',')
df <- do.call(rbind, lapply(df, as.numeric))
colnames(df) <- c('Lat', 'Long')
0 голосов
/ 09 октября 2019

Вы можете попробовать использовать библиотеку (splitstackshape). Я нашел это очень полезным для очистки данных.

eg: SF_Fire_new<-cSplit(SF_Fire,"Location",",",drop=FALSE)
0 голосов
/ 09 октября 2019

Мы можем использовать str_extract_all

library(stringr)
do.call(rbind, str_extract_all(SF_fire$Location, "-?[0-9]+\\.[0-9]+"))
...