当前位置:  开发笔记 > 前端 > 正文

警告:此语言环境中的输入字符串不可用

如何解决《警告:此语言环境中的输入字符串不可用》经验,为你挑选了2个好方法。

Rstudio版本1.0.136

R版本3.3.2

奇怪的是,当我在一个.Rmd带有Rmarkdown 的文件中逐行运行代码(它在代码中有中文注释)时 ,控制台将打印一个警告如下:

Warning message:
In strsplit(code, "\n", fixed = TRUE) :
   input string 1 is invalid in this locale

它太烦人了,因为它会出现每一行.我在RStudio的设置中更改了默认文本编码,但是UTF-8和BG2312都不能阻止出现此警告消息.请注意,它只是在行代码逐行时出现,如果我选择一个块按一个按钮来生成一个html,则不会出现警告.我的代码如下:

```{r}
da=read.table("m-intcsp7309.txt",header=T)
head(da)
# date intel sp??
length(da$date)
# 444??
intc=log(da$intc+1)
# ??
plot(cars)
# ??????
plot(cars)
# ?????????
plot(cars)
```

我测试它不是来自中文评论,我
只是在现在才使用英语时遇到它.以下是更多信息:

Sys.getlocale()
[1] "LC_COLLATE=Chinese (Simplified)_People's Republic of China.936;
     LC_CTYPE=Chinese (Simplified)_People's Republic of China.936;
     LC_MONETARY=Chinese (Simplified)_People's Republic of China.936;
     LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_People's Republic of China.936"

www.. 9

将其直接嵌入包含中文字符注释的Rmarkdown脚本中:

Sys.setlocale('LC_ALL','C')

如果你只是在运行rmarkdown脚本之前在R控制台中运行它,那可能会暂时改变设置和工作,但正如你所说,如果你重新启动R它将不会保持这种状态.这就是为什么最好直接嵌入该行进入需要它的脚本.



1> www..:

将其直接嵌入包含中文字符注释的Rmarkdown脚本中:

Sys.setlocale('LC_ALL','C')

如果你只是在运行rmarkdown脚本之前在R控制台中运行它,那可能会暂时改变设置和工作,但正如你所说,如果你重新启动R它将不会保持这种状态.这就是为什么最好直接嵌入该行进入需要它的脚本.



2> crsh..:

我遇到了类似的问题gsub(),只需设置即可解决该问题,而无需更改语言环境useBytes = TRUE。同样的工作strsplit()。从文档中:

如果为TRUE,则匹配是逐字节进行,而不是逐字符进行,并且不会转换带有标记编码的输入。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有