奇怪的R的警告信息

在Rstudio里,无论干什么,都是跳出警告信息 Warning message: In strsplit(code, “\n”, fixed = TRUE) : input string 1 is invalid in this locale

只是见了鬼了,咨询了一圈也没有人搭理,试用了一下bing的国内和国际搜索,似乎也没有找到答案,真是怪了,自从知道有事要搜索以来,这种人品问题极少遇到了,或者遇到也忘记了。。。

选了UTF-8编码,升级了所有的包,还是解决不了问题,只得再次放狗搜索,终于在stckoverflow找到一个一模一样的。

输入神奇的代码:

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

好了!

原答案:

It seems like the text file you are reading in contains a character that is not available in your original chinese locale. Not sure how it was encoded etc. The warning is carried on for every executed line even though it did not occur again. – Martin Schmelzer Jan 18 at 13:14

#

今天无意中发现,可以在R的安装目录下,用记事本打开etc下的Rprofile.site这个文件,把这一行代码直接写进去,每次启动时候就自动执行一下,不错。

#

无意逛了一下统计之都,发现大神们的交流了,备注一下,大神说千万不能用:Sys.setlocale('LC_ALL','C')

奇怪的R的警告信息” 中有 3 条评论

  1. 谢益辉回复我了,但是他说比较忙,一个月以后他再看看。非常感谢您的回复!

  2. 这位大神你好! 我试了一下,用这个命令确实可以让那个警告不再跳出,但却出现了一个更大的问题,那就是我的命令里不能有中文了。比如这个命令原来可以正常运行:

    address2 <- "1.待导入/11·29result.xlsx"

    但现在我在右上角的Global Environment里面看到address2是:

    "1.<U+5F85><U+5BFC><U+5165>/11<U+00B7>29result.xlsx"

    所以读取这个地址也就失败了:

    data1 <- readxl::readexcel(address2) Error in readfun(path = path, sheet = sheet, limits = limits, shim = shim, : Evaluation error: zip file '1.寰呭鍏?11路29result.xlsx' cannot be opened.

    类似的解决方案还有这句:

    Sys.setlocale(category='LCALL', locale='EnglishUnited States.1252') [1] "LCCOLLATE=EnglishUnited States.1252;LCCTYPE=EnglishUnited States.1252;LCMONETARY=EnglishUnited States.1252;LCNUMERIC=C;LCTIME=English_United States.1252"

    也是一样的问题。 所以,在Rmarkdown中有没有两全的方法,既可以保留语句中的中文,又能让警告信息不跳出呢? 我看好像用mac的同学没有遇到这个问题。

    1. 这个我也不知道怎么办,我试了一下,xls文件确实报错,但是存为csv文件,似乎能读取文件内容,但如果文件里有中文的话,中文就是乱码了,所以感觉似乎是两个问题,一个是读xls的包是不是有关系,另一个和编码是不是有关系。自从经历过ubuntu以后,我习惯不应用中文文件夹或中文目录,csv文件保存数据表等... 建议尽量用最新版本。如果英文好的话,给Rstudio写个email吧。以前给Xieyihui写过email,反映hardly大神的一个包的问题,被告之直接找hardly本人,所以憋出几句不伦不类的中英文,至今也不确定他们有没有看明白。

      顺便吐槽一下,以前的Rstdio(低于0.99版本的),干这些事是都没问题的

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注