gpt4 book ai didi

r - 将字符串数据转换为数据框

转载 作者:行者123 更新时间:2023-12-04 06:01:44 25 4
gpt4 key购买 nike

我是 R 的新手,任何建议将不胜感激。

这是数据:

coordinates <- "(-79.43591570873059, 43.68015339477487), (-79.43491506339724, 43.68036886994886), (-79.43394727223847, 43.680578504490335), (-79.43388162422195, 43.68058996121469), (-79.43281544978878, 43.680808044458765), (-79.4326971769691, 43.68079658822322)"

我希望这变成:
Latitude           Longitude
-79.43591570873059 43.68015339477487
-79.43491506339724 43.68036886994886
-79.43394727223847 43.680578504490335
-79.43388162422195 43.68058996121469
-79.43281544978878 43.680808044458765
-79.4326971769691 43.68079658822322

最佳答案

我们可以使用 str_extract_all来自 stringr

library(stringr)

df <- data.frame(Latitude = str_extract_all(coordinates, "(?<=\\()-\\d+\\.\\d+")[[1]],
Longitude = str_extract_all(coordinates, "(?<=,\\s)\\d+\\.\\d+(?=\\))")[[1]])
df
# Latitude Longitude
#1 -79.43591570873059 43.68015339477487
#2 -79.43491506339724 43.68036886994886
#3 -79.43394727223847 43.680578504490335
#4 -79.43388162422195 43.68058996121469
#5 -79.43281544978878 43.680808044458765
#6 -79.4326971769691 43.68079658822322
Latitude从左括号中捕获负十进制数 ( ( ) 而 Longitude将它从逗号 ( , ) 捕获到右方括号 ( ) )。

或者没有正则表达式向前和向后并使用 str_match_all 一起捕获它
df <- data.frame(str_match_all(coordinates, 
"\\((-\\d+\\.\\d+),\\s(\\d+\\.\\d+)\\)")[[1]][, c(2, 3)])

要将数据转换为各自的类型,您可以使用 type.convert
df <- type.convert(df)

关于r - 将字符串数据转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59168816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com