隔了一段时间,我今天早上更新了RStudio和所有软件包。
我有一个用来美化货币的小功能
currency <- function(n, k=FALSE) {
n <- ifelse(!k, str_c("£", comma(round(n,0))), str_c("£", comma(round(n/1000,0)),"k"))
return(n)
}
现在无法解析-问题是英镑符号。
Error in parse(text = lines, n = -1, srcfile = srcfile) :
[path]/plot_helpers.R:72:
25: unexpected INCOMPLETE_STRING
71: currency <- function(n, k=FALSE) {
72: n <- ifelse(!k, str_c("
^
In addition: Warning message:
In readLines(con, warn = FALSE, n = n, ok = ok, skipNul = skipNul) :
invalid input found on input connection '/home/richardc/ownCloud/prodr/R/plot_helpers.R'
但是我可以在编辑器中运行代码,并且可以正常工作。是什么导致readLines以这种方式失败?
答案 0 :(得分:0)
经过一番混乱后,我意识到问题出在devtools中。在这里回顾一下测试项目testencr.prj:
library(stringr)
library(devtools)
main <- function(n) {
n <- str_c("£", n)
return(n)
}
我可以在控制台上正常运行代码,但是当我使用devtools时,它会打UTF-8字符:
> devtools::load_all()
Loading testencr
Error in parse(text = lines, n = -1, srcfile = srcfile) :
/home/richardc/ownCloud/test/R/test_enc.R:6:14: unexpected INCOMPLETE_STRING
5: main <- function(n) {
6: n <- str_c("
^
In addition: There were 27 warnings (use warnings() to see them)
但是当我在Description中添加特定的编码
Encoding: UTF-8
一切正常(尽管项目默认值为UTF8)
Loading testencr
There were 36 warnings (use warnings() to see them)```
答案 1 :(得分:0)
我遇到了同样的问题,特别是在Shiny应用程序中(并非在其余时间)。我设法使用此unicode而不是£来解决它:
enc2utf8("\u00A3")