R-разбиение столбца dataframe со строковыми значениями (содержит 2 числа и разделенных запятой) на 2 столбца - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть фрейм данных ddata, где переменная Location имеет широту и долготу в строковом формате, разделенные запятой.Поэтому, когда я набираю ddata$Location в своей консоли, я вижу это:

"33.9829, -118.3338"
"34.0454, -118.3157"
"33.942,  -118.2717"
"33.9572, -118.2717"

Как разделить этот столбец запятой и разделителем, чтобы он стал 2 столбцами с именами: Longitude и Latitude?Я пробовал функцию разделения, но не могу заставить ее работать.

Ответы [ 3 ]

0 голосов
/ 09 декабря 2018

Вы можете использовать функцию str_split_fixed в пакете stringr, например:

library(stringr)
ddata[,c("Longitude", "Latitude")] <- str_split_fixed(ddata$Location, ", ", 2)

Это даст вам:

#             Location  Longitude   Latitude
# 1 33.9829, -118.3338    33.9829  -118.3338
# 2 34.0454, -118.3157    34.0454  -118.3157
# 3  33.942, -118.2717     33.942  -118.2717
# 4 33.9572, -118.2717    33.9572  -118.2717

Тогда, еслиВы хотите удалить столбец Location, вы можете просто использовать это:

ddata$Location <- NULL

Чтобы получить это:

#   Longitude   Latitude
# 1   33.9829  -118.3338
# 2   34.0454  -118.3157
# 3    33.942  -118.2717
# 4   33.9572  -118.2717

Надеюсь, это поможет.

0 голосов
/ 09 декабря 2018

library(tidyr) separate(ddata, ddata$Location, c("Longitude", "Latitude"), ",")

0 голосов
/ 09 декабря 2018

Поскольку он разделен ,, самый простой вариант - read.csv (при условии, что класс 'Location' равен character, а не factor. Если это фактор, конвертируйте его в characteras.character(ddata$Location))

out <- read.csv(text = ddata$Location, header = FALSE,
      col.names = c("Latitude", "Longitude"))

Теперь мы cbind это с исходными данными

ddataNew <- cbind(dddata, out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...