我写了一个函数,它从字符串中提取坐标数。例如。 “E 10,9598°”将是10.9598。
extract_coordinates <- function(x) {
coord <- gsub(x = x, pattern = "[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]",
replacement = "")
coord <- gsub(x = coord, pattern = "°", replacement = "")
coord <- gsub(x = coord, pattern = "[:space:]", replacement = "")
coord <- gsub(x = coord, pattern = ",", replacement = ".")
as.numeric(coord)
}
当我运行devtools :: check()时,虽然这会给我一个警告,因为“°”是一个非ascii字符。我尝试使用unicode“U + 00B0”作为gsub中的模式,但这不起作用。
我如何更改代码,因此不再有警告了?
答案 0 :(得分:2)
您可以使用charToRaw("°")
获取\uxxxx
转义码,然后在R代码中使用它。例如,我的代码在单词ã
中使用Não
。要通过devtools::check()
,需要这样做:
charToRaw("ã") # answer is \u00a3
然后,Não
在我的代码中变为N\u00a3o
,问题就解决了。