使用R从非结构化文本文件中提取不同长度的数字(纬度和经度)
Extracting different length of numbers (latitude and longitude) from unstructured text file with R
我想从非结构化文本文件中提取不同的纬度和经度。坐标可以采用以下形式:
“0.41566”; “-0.41566”; "21.36584785" ; "100.2457
此语法仅适用于 120.564874
这样的数字
library(stringr)
lat <- c("([0-9]{3}) [.] ([0-9]{6})")
essailat<-str_extract_all(essai,lat, simplify=F)
但是正如我所说,我想提取上面显示的所有其他格式。
library(stringr)
lat <- c("([0-9]{1}) [.] ([0-9]{4})", "([0-9]{3}) [.] ([0-9]{6})")
essailat<-str_extract_all(essai,lat, simplify=F)
但是好像不行。另外有时,我的纬度是一个负数 (-0.41567
),所以我想指定它也提取负号
提前感谢您的帮助。
PS:这就是我要指定一个非结构化文件的意思,因为 lon 和 lat 成对工作,我可以首先提取具有某种格式的所有 lat,但所有这些都同时尊重命令。
提前感谢您的帮助!
示例输入:
cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"900.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"-0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"-0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"-0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacac
您可以使用以下修复方法:
> library(stringr)
> lat <- "-?[0-9]+\.[0-9]+"
> s <- "cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"900.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"-0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"-0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"-0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacac"
> essailat<-str_extract_all(s,lat)
> essailat
[[1]]
[1] "900.252578" "0.997754" "0.252578" "-0.997754" "0.252578" "0.997754" "0.252578" "0.997754"
[9] "-0.252578" "0.997754" "0.252578" "-0.997754" "0.252578" "0.997754" "0.252578" "0.997754"
[17] "0.252578" "0.997754"
-?[0-9]+\.[0-9]+
正则表达式将匹配一个可选的 -
,然后是 1+ 个数字,一个文字 .
,然后是 1+ 个数字。
我想从非结构化文本文件中提取不同的纬度和经度。坐标可以采用以下形式: “0.41566”; “-0.41566”; "21.36584785" ; "100.2457
此语法仅适用于 120.564874
这样的数字library(stringr)
lat <- c("([0-9]{3}) [.] ([0-9]{6})")
essailat<-str_extract_all(essai,lat, simplify=F)
但是正如我所说,我想提取上面显示的所有其他格式。
library(stringr)
lat <- c("([0-9]{1}) [.] ([0-9]{4})", "([0-9]{3}) [.] ([0-9]{6})")
essailat<-str_extract_all(essai,lat, simplify=F)
但是好像不行。另外有时,我的纬度是一个负数 (-0.41567
),所以我想指定它也提取负号
提前感谢您的帮助。
PS:这就是我要指定一个非结构化文件的意思,因为 lon 和 lat 成对工作,我可以首先提取具有某种格式的所有 lat,但所有这些都同时尊重命令。
提前感谢您的帮助!
示例输入:
cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"900.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"-0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"-0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"-0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac"latitude":"0.252578";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca"longitude":"0.997754"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacac
您可以使用以下修复方法:
> library(stringr)
> lat <- "-?[0-9]+\.[0-9]+"
> s <- "cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"900.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"-0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"-0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"-0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacacac\"latitude\":\"0.252578\";cacacacacacacacacacacacacacacaccacacacacacacacacacacacacacacacaccccacacacacaca\"longitude\":\"0.997754\"cacacacacacaacacacacacaacacacacacacacacacacacacacacacacacacacac"
> essailat<-str_extract_all(s,lat)
> essailat
[[1]]
[1] "900.252578" "0.997754" "0.252578" "-0.997754" "0.252578" "0.997754" "0.252578" "0.997754"
[9] "-0.252578" "0.997754" "0.252578" "-0.997754" "0.252578" "0.997754" "0.252578" "0.997754"
[17] "0.252578" "0.997754"
-?[0-9]+\.[0-9]+
正则表达式将匹配一个可选的 -
,然后是 1+ 个数字,一个文字 .
,然后是 1+ 个数字。