繁体   English   中英

如何将 (x,y) 与 R 中的新列 x 和 y 分开?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM