在devtools :: check()中没有警告的情况下替换R函数中的非ascii字符

时间:2017-02-19 17:45:46

标签: r

我写了一个函数,它从字符串中提取坐标数。例如。 “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中的模式,但这不起作用。

我如何更改代码,因此不再有警告了?

1 个答案:

答案 0 :(得分:2)

您可以使用charToRaw("°")获取\uxxxx转义码,然后在R代码中使用它。例如,我的代码在单词ã中使用Não。要通过devtools::check(),需要这样做:

 charToRaw("ã")  # answer is \u00a3

然后,Não在我的代码中变为N\u00a3o,问题就解决了。