[英]How to separate (x,y) to new coulmns x and y in R?
数据集 (CSV) 文件的纬度和经度列为 (33, -118), (34, -119), (36, -120) 等。有一百万行。
如何将它们分开,例如如何创建两个具有 lat 和 long 单独值的新列。 我知道如何使用在单独的列中给出 lat 和 long 的 ggmap 来 map。
谢谢您的帮助
又一次尝试:
library(tidyverse)
df <- data.frame(col = c('(33, -118)', '(34, -119)', '(36, -120)'))
df %>%
mutate(col =col %>% str_sub(2,-2)) %>% # remove ( and )
separate(col, c('lat', 'lon'), convert=T) # separate
lat lon
1 33 118
2 34 119
3 36 120
在data.table
:
library(data.table)
setDT(myData)
myData[ , c('lat', 'lon') := tstrsplit(
gsub('[()]', '', lat_lon_col),
split = ', ',
fixed = TRUE, type.convert = TRUE
)]
您可以从列中提取数字并创建两个新列。
df[c('lat', 'lon')] <- stringr::str_extract_all(df$col, "-?\\d+", simplify = TRUE)
df
# col lat lon
#1 (33, -118) 33 -118
#2 (34, -119) 34 -119
#3 (36, -120) 36 -120
数据
df <- data.frame(col = c('(33, -118)', '(34, -119)', '(36, -120)'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.