Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中替换特殊字符_R_String_Geolocation_Geospatial - Fatal编程技术网

在R中替换特殊字符

在R中替换特殊字符,r,string,geolocation,geospatial,R,String,Geolocation,Geospatial,我有一个数据文件,其地理坐标以度-分-秒表示,结构如下: 39°47′01″ N,100°26′45″ W 我可以通过以下方式将其读入R: d <- read.csv("D:/locations.csv", encoding="UTF-8") head(d) Location Lat Long United States 39°47'01<U+2033> N 100°26'45<U+2033> W Den

我有一个数据文件,其地理坐标以度-分-秒表示,结构如下:

39°47′01″ N,100°26′45″ W
我可以通过以下方式将其读入R:

d <- read.csv("D:/locations.csv", encoding="UTF-8")
head(d)
Location        Lat                   Long
United States   39°47'01<U+2033> N    100°26'45<U+2033> W
Denmark         55°40'13<U+2033> N    10°20'00<U+2033> E 
.
.
.
我应该如何替换分钟数?我以前已经尝试过使用转义序列

更新

根据评论中的要求,以下是使用dput的数据示例:

> dput(sample(d$Lat, 10))
structure(c(174L, 7L, 185L, 121L, 127L, 200L, 121L, 62L, 64L, 
191L), .Label = c("", "0°18'22<U+2033> N", "0°31'30<U+2033> S", 
"0°53'15<U+2033> N", "0°54'00<U+2033> S", "1°17'26<U+2033> N", 
"1°20'23<U+2033> S", "1°26'31<U+2033> N", "1°32'00<U+2033> N", 
"1°36'47<U+2033> N", "1°57'53<U+2033> S", "10°12'42<U+2033> N", 
"10°16'25<U+2033> N", "10°20'00<U+2033> S", "10°43'21<U+2033> N", 
"10°52'04<U+2033> N", "11°51'24<U+2033> N", "11°52'39<U+2033> S", 
"12°04'31<U+2033> N", "12°06'00<U+2033> N", "12°08'10<U+2033> N", 
"12°09'17<U+2033> N", "12°12'16<U+2033> S", "12°22'21<U+2033> N", 
"12°30'05<U+2033> N", "12°45'01<U+2033> N", "12°54'16<U+2033> N", 
"13°09'00<U+2033> N", "13°16'07<U+2033> S", "13°17'25<U+2033> N", 
"13°28'12<U+2033> N", "13°30'24<U+2033> N", "13°46'10<U+2033> S", 
"13°48'00<U+2033> N", "13°49'30<U+2033> N", "14°28'30<U+2033> N", 
"14°31'07<U+2033> S", "14°53'50<U+2033> N", "15°03'40<U+2033> N", 
"15°24'41<U+2033> N", "15°27'13<U+2033> N", "15°36'48<U+2033> N", 
"15°38'08<U+2033> N", "15°57'00<U+2033> N", "16°00'00<U+2033> N", 
"16°20'50<U+2033> N", "16°22'12<U+2033> N", "16°31'32<U+2033> S", 
"16°49'34<U+2033> N", "17°03'25<U+2033> S", "17°04'45<U+2033> N", 
"17°10'30<U+2033> N", "17°20'46<U+2033> N", "17°44'08<U+2033> N", 
"18°07'26<U+2033> S", "18°11'06<U+2033> N", "18°27'20<U+2033> S", 
"18°55'30<U+2033> S", "19°05'51<U+2033> N", "19°08'24<U+2033> N", 
"19°18'08<U+2033> S", "19°25'57<U+2033> N", "19°54'58<U+2033> S", 
"2°23'33<U+2033> N", "2°53'35<U+2033> N", "2°58'53<U+2033> S", 
"20°01'02<U+2033> N", "20°15'15<U+2033> N", "20°16'33<U+2033> S", 
"21°00'00<U+2033> N", "22°21'04<U+2033> N", "23°00'47<U+2033> N", 
"23°10'05<U+2033> S", "23°14'01<U+2033> S", "23°19'00<U+2033> S", 
"23°58'26<U+2033> N", "24°00'01<U+2033> N", "24°28'37<U+2033> N", 
"24°46'25<U+2033> N", "24°46'34<U+2033> S", "25°13'06<U+2033> N", 
"25°13'41<U+2033> N", "25°13'57<U+2033> N", "25°37'27<U+2033> N", 
"26°09'18<U+2033> N", "26°15'15<U+2033> N", "26°33'45<U+2033> S", 
"26°49'24<U+2033> N", "27°32'58<U+2033> N", "28°00'00<U+2033> N", 
"28°06'30<U+2033> N", "28°49'00<U+2033> S", "29°16'24<U+2033> N", 
"29°36'14<U+2033> S", "3°21'48<U+2033> S", "30°19'51<U+2033> N", 
"30°52'34<U+2033> N", "31°10'00<U+2033> N", "31°10'22<U+2033> N", 
"31°25'59<U+2033> N", "31°45'41<U+2033> S", "31°59'28<U+2033> N", 
"32°01'32<U+2033> N", "32°19'46<U+2033> N", "32°52'32<U+2033> S", 
"32°56'27<U+2033> N", "33°00'00<U+2033> N", "33°05'44<U+2033> N", 
"33°50'38<U+2033> N", "33°52'30<U+2033> N", "34°38'25<U+2033> N", 
"34°58'56<U+2033> N", "34°59'47<U+2033> S", "35°00'00<U+2033> N", 
"35°23'55<U+2033> N", "36°34'29<U+2033> N", "38°37'41<U+2033> N", 
"38°57'35<U+2033> N", "39°00'00<U+2033> N", "39°22'35<U+2033> N", 
"39°47'01<U+2033> N", "4°08'29<U+2033> N", "4°13'19<U+2033> N", 
"4°24'49<U+2033> N", "4°36'45<U+2033> N", "4°39'27<U+2033> S", 
"4°47'58<U+2033> S", "4°50'30<U+2033> N", "40°00'10<U+2033> N", 
"40°02'00<U+2033> N", "40°18'45<U+2033> N", "40°23'37<U+2033> N", 
"40°45'41<U+2033> N", "40°46'11<U+2033> N", "41°00'00<U+2033> N", 
"41°19'25<U+2033> N", "41°30'00<U+2033> S", "41°30'32<U+2033> N", 
"41°37'02<U+2033> N", "42°11'08<U+2033> N", "42°36'27<U+2033> N", 
"42°38'18<U+2033> N", "42°45'09<U+2033> N", "43°01'43<U+2033> N", 
"43°43'52<U+2033> N", "44°09'04<U+2033> S", "44°18'19<U+2033> N", 
"45°33'52<U+2033> N", "45°48'48<U+2033> N", "45°59'07<U+2033> N", 
"46°32'01<U+2033> N", "46°36'12<U+2033> N", "46°47'55<U+2033> N", 
"46°49'30<U+2033> N", "47°10'54<U+2033> N", "47°12'00<U+2033> N", 
"47°13'43<U+2033> N", "47°17'12<U+2033> N", "47°31'02<U+2033> N", 
"48°44'28<U+2033> N", "49°29'14<U+2033> N", "49°49'00<U+2033> N", 
"5°33'36<U+2033> N", "5°40'54<U+2033> S", "5°45'00<U+2033> N", 
"50°38'27<U+2033> N", "51°05'00<U+2033> N", "51°31'14<U+2033> N", 
"52°05'52<U+2033> N", "52°14'17<U+2033> N", "52°51'55<U+2033> N", 
"53°25'30<U+2033> N", "54°10'37<U+2033> S", "54°42'08<U+2033> N", 
"55°21'00<U+2033> N", "55°40'13<U+2033> N", "58°45'09<U+2033> N", 
"59°40'30<U+2033> N", "6°05'51<U+2033> N", "6°31'29<U+2033> S", 
"6°52'12<U+2033> S", "6°57'07<U+2033> N", "61°04'00<U+2033> N", 
"64°34'27<U+2033> N", "64°41'11<U+2033> N", "64°59'03<U+2033> N", 
"69°10'21<U+2033> S", "7°52'41<U+2033> N", "7°59'23<U+2033> N", 
"8°00'07<U+2033> N", "8°01'48<U+2033> N", "8°18'35<U+2033> N", 
"8°22'04<U+2033> N", "8°30'55<U+2033> S", "8°38'24<U+2033> N", 
"8°46'48<U+2033> N", "82°39'44<U+2033> N", "9°31'46<U+2033> N", 
"9°36'00<U+2033> N", "9°44'08<U+2033> S"), class = "factor")
>dput(示例(d$Lat,10))
结构(c)(174L,7L,185L,121L,127L,200L,121L,62L,64L,
191L),.Label=c(“,“0°18'22 N”,“0°31'30 S”,
“0°53'15北纬”、“0°54'00北纬”、“1°17'26北纬”,
“1°20'23”“1°26'31北纬”“1°32'00北纬”,
“1°36'47北纬”、“1°57'53北纬”、“10°12'42北纬”,
“10°16'25北纬”、“10°20'00北纬”、“10°43'21北纬”,
“10°52'04北纬”、“11°51'24北纬”、“11°52'39南纬”,
“12°04'31北纬”、“12°06'00北纬”、“12°08'10北纬”,
“12°09'17北纬”、“12°12'16北纬”、“12°22'21北纬”,
“12°30'05北纬”、“12°45'01北纬”、“12°54'16北纬”,
“13°09'00北纬”、“13°16'07北纬”、“13°17'25北纬”,
“13°28'12北纬”、“13°30'24北纬”、“13°46'10北纬”,
“13°48'00N”、“13°49'30N”、“14°28'30N”,
“14°31'07北纬”、“14°53'50北纬”、“15°03'40北纬”,
“15°24'41北纬”、“15°27'13北纬”、“15°36'48北纬”,
“15°38'08北纬”、“15°57'00北纬”、“16°00'00北纬”,
“16°20'50北纬”、“16°22'12北纬”、“16°31'32南纬”,
“16°49'34北纬”、“17°03'25北纬”、“17°04'45北纬”,
“17°10'30北纬”、“17°20'46北纬”、“17°44'08北纬”,
“18°07'26”“18°11'06北纬”“18°27'20”,
“18°55'30”“19°05'51北纬”“19°08'24北纬”,
“19°18'08”“19°25'57北纬”“19°54'58南纬”,
“2°23'33北纬”、“2°53'35北纬”、“2°58'53南纬”,
“20°01'02北纬”、“20°15'15北纬”、“20°16'33北纬”,
“21°00'00北纬”、“22°21'04北纬”、“23°00'47北纬”,
“23°10'05”“23°14'01”“23°19'00”,
“23°58'26北纬”、“24°00'01北纬”、“24°28'37北纬”,
“24°46'25北纬”、“24°46'34北纬”、“25°13'06北纬”,
“25°13'41北纬”、“25°13'57北纬”、“25°37'27北纬”,
“26°09'18北纬”、“26°15'15北纬”、“26°33'45北纬”,
“26°49'24北纬”、“27°32'58北纬”、“28°00'00北纬”,
“28°06'30北纬”、“28°49'00北纬”、“29°16'24北纬”,
“29°36'14”“3°21'48”“30°19'51北纬”,
“30°52'34北纬”、“31°10'00北纬”、“31°10'22北纬”,
“31°25'59北纬”、“31°45'41北纬”、“31°59'28北纬”,
“32°01'32北纬”、“32°19'46北纬”、“32°52'32南纬”,
“32°56'27北纬”、“33°00'00北纬”、“33°05'44北纬”,
“33°50'38北纬”、“33°52'30北纬”、“34°38'25北纬”,
“34°58'56北纬”、“34°59'47北纬”、“35°00'00北纬”,
“35°23'55北纬”、“36°34'29北纬”、“38°37'41北纬”,
“38°57'35北纬”、“39°00'00北纬”、“39°22'35北纬”,
“39°47'01北纬”、“4°08'29北纬”、“4°13'19北纬”,
“4°24'49北纬”、“4°36'45北纬”、“4°39'27北纬”,
“4°47'58”“4°50'30北纬”“40°00'10北纬”,
“40°02'00北纬”、“40°18'45北纬”、“40°23'37北纬”,
“40°45'41北纬”、“40°46'11北纬”、“41°00'00北纬”,
“41°19'25北纬”、“41°30'00北纬”、“41°30'32北纬”,
“41°37'02北纬”、“42°11'08北纬”、“42°36'27北纬”,
“42°38'18北纬”、“42°45'09北纬”、“43°01'43北纬”,
“43°43'52北纬”、“44°09'04北纬”、“44°18'19北纬”,
“45°33'52北纬”、“45°48'48北纬”、“45°59'07北纬”,
“46°32'01北纬”、“46°36'12北纬”、“46°47'55北纬”,
“46°49'30北纬”、“47°10'54北纬”、“47°12'00北纬”,
“47°13'43北纬”、“47°17'12北纬”、“47°31'02北纬”,
“48°44'28北纬”、“49°29'14北纬”、“49°49'00北纬”,
“5°33'36北纬”、“5°40'54北纬”、“5°45'00北纬”,
“50°38'27北纬”、“51°05'00北纬”、“51°31'14北纬”,
“52°05'52北纬”、“52°14'17北纬”、“52°51'55北纬”,
“53°25'30北纬”、“54°10'37北纬”、“54°42'08北纬”,
“55°21'00北纬”、“55°40'13北纬”、“58°45'09北纬”,
“59°40'30北纬”、“6°05'51北纬”、“6°31'29北纬”,
“6°52'12”“6°57'07北纬”“61°04'00北纬”,
“64°34'27北纬”、“64°41'11北纬”、“64°59'03北纬”,
“69°10'21”“7°52'41北纬”“7°59'23北纬”,
“8°00'07北纬”、“8°01'48北纬”、“8°18'35北纬”,
“8°22'04北纬”、“8°30'55北纬”、“8°38'24北纬”,
“8°46'48北纬”、“82°39'44北纬”、“9°31'46北纬”,
“9°36'00北纬”,“9°44'08南纬”,class=“系数”)

使用您的示例,您可以使用
数据帧尝试以下操作(应为
d$Lat
):

d%>%sub(“,”d“,)%>%sub(“,”m“,)%>%sub(“,”s“,”)
[1] “54d42m08s N”“1d20m23s”“64d41m11s N”“39d47m01s N”“4d47m58s”
[6] “9d44m08s”“39d47m01s N”“19d25m57s N”“2d23m33s N”“8d01m48s N”

但我认为可能有一种更聪明的方法(没有
*sub
在坐标系之间进行转换)。

我们可以通过单个
sub
捕获组来实现这一点

sub("(\\d+).(\\d+).(\\d+).*(\\s+.)", "\\1d\\2m\\3s\\4", v1)
#[1] "54d42m08s N" "1d20m23s S"  "64d41m11s N" "39d47m01s N" "4d47m58s S" 
#[6] "9d44m08s S"  "39d47m01s N" "19d25m57s N" "2d23m33s N"  "8d01m48s N" 
其中“v1”是
d$Lat


在这里,我们不使用
%%>%%
,因为它是不需要的。

您可以分享
dput(head(d))
的结果来做个例子吗?
d %>% sub("°", "d", .) %>% sub("'", "m", .) %>% sub("<U\\+2033>","s",.)
 [1] "54d42m08s N" "1d20m23s S"  "64d41m11s N" "39d47m01s N" "4d47m58s S" 
 [6] "9d44m08s S"  "39d47m01s N" "19d25m57s N" "2d23m33s N"  "8d01m48s N" 
sub("(\\d+).(\\d+).(\\d+).*(\\s+.)", "\\1d\\2m\\3s\\4", v1)
#[1] "54d42m08s N" "1d20m23s S"  "64d41m11s N" "39d47m01s N" "4d47m58s S" 
#[6] "9d44m08s S"  "39d47m01s N" "19d25m57s N" "2d23m33s N"  "8d01m48s N"