2017-01-18 5 views
9

Rstudio Версия 1.0.136Предупреждение: Входная строка недоступна в данной местности

R Version 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" 
+0

Добавьте вывод из 'Sys.getlocale()' –

+0

@Martin. Я сделал это. – lemmingxuan

+5

Попробуйте 'Sys.setlocale ('LC_ALL', 'C')' –

ответ

2

Вставить это непосредственно в скрипте Rmarkdown, который содержит китайский символ комментария (ы):

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

Если вы просто запустить его в R консоли перед запуском rmarkdown скрипт, который может временно изменить настройку и работу, но, как вы сказали, он не останется таким, если вы перезапустите R. Вот почему лучше прямо вставлять эту строку в скрипты, которые в ней нуждаются.

+0

@lemmingxuan - Это ответ на ваш вопрос? – www