如何用R从字符串中提取经纬度数值?求R代码实现
R代码提取经纬度列
假设你的数据框是df,其中包含一列名为geo_str的字符串数据,我们可以用stringr包的str_extract配合正则表达式来提取目标值:
# 加载所需包 library(tidyverse) # 构造示例数据 df <- tibble( geo_str = "geo:lat:55.892994,lng:10.510947,address:content:NA" ) # 提取纬度和经度并生成新列 df <- df %>% mutate( column1 = as.numeric(str_extract(geo_str, "(?<=lat:)\\d+\\.\\d+")), column2 = as.numeric(str_extract(geo_str, "(?<=lng:)\\d+\\.\\d+")) ) # 查看结果 df
代码说明:
(?<=lat:)是正向零宽断言,用于匹配lat:之后的内容,不会把lat:本身包含在提取结果里\\d+\\.\\d+匹配带小数点的数值(整数部分+小数点+小数部分),确保只提取经纬度的数值部分as.numeric()将提取到的字符串转换为数值类型,方便后续分析
如果你的数据有多行,这段代码同样适用,会逐行处理每个字符串。
内容的提问来源于stack exchange,提问作者Becky
相关产品推荐
相关产品推荐

