2013-05-30 3 views
9

Я установил пакеты Sweave, а также knitr как на Linux Mint и Windows 7, и она хорошо работает на Windows, , но не при использовании rstudio в Linux. После установки pkgs, я пишу простой dw.Rnw следующим образом:Ошибка при компиляции PDF с использованием knitr в rstudio

\documentclass{article} 

\begin{document} 

The regression model is as follows 
<<echo=TRUE>>= 
pop=read.table("pop.txt",header=TRUE) 
attach(pop) 

lm.sol=lm(y~year) 
summary(lm.sol) 
@ 


\end{document} 

При нажатии на кнопку 'Компиляция PDF' в rstudio, она возвращает следующие сообщения об ошибках:

During startup - Warning messages: 
1: Setting LC_CTYPE failed, using "C" 
2: Setting LC_COLLATE failed, using "C" 
3: Setting LC_TIME failed, using "C" 
4: Setting LC_MESSAGES failed, using "C" 
5: Setting LC_PAPER failed, using "C" 
6: Setting LC_PAPER failed, using "C" 
7: Setting LC_MEASUREMENT failed, using "C" 
> grDevices::pdf.options(useDingbats = FALSE); require(knitr); knit('dw.Rnw', encoding='UTF-8') 
Loading required package: knitr 
Warning in readLines(if (is.character(input2)) { : 
    cannot open file 'dw.Rnw': No such file or directory 
Error in readLines(if (is.character(input2)) { : 
    cannot open the connection 
Calls: knit -> readLines 
Execution halted 

Кажется, что-то не так с функцией knit. Однако, если я типа

knit("dw.Rnw") 

в консоли rstudio, то он успешно создает файл dw.tex, который я могу компилировать с pdflatex и, наконец, генерировать dw.pdf.

Так что же случилось с моим knitr или rstudio?

+0

Из предупреждающих сообщений о запуске, похоже, вы задали некоторые неправильные переменные среды или ввернули что-то в '~/.Rprofile'. Пожалуйста, напишите 'x = as.list (Sys.getenv()); str (x [grep ('^ L [AC]', names (x))])' и проверьте, нет ли чего-то неправильного в '~ /. Rprofile' (если он существует). –

+0

Большое спасибо Yihui! Кажется, что что-то не так с моим ~/.Rprofile, так как после очистки всех настроек в нем я могу скомпилировать pdf с rstudio! На самом деле у меня есть только следующие два параметра в .Rprofile: setwd ("~/Rproject") options (editor = "/ usr/bin/vim") Можете ли вы рассказать мне, что не так с моими настройками? Еще раз спасибо. –

+0

Я думаю, что 'setwd()' in .Rprofile - это плохая практика, но я не вижу, как это может повлиять на ваш локаль R. –

ответ

11

Хотя я до сих пор не понимаю, почему, но из комментариев выше, проблема, похоже, исходит от ~/.Rprofile (в частности, setwd()). Устранение этой проблемы решает проблему.

Обратите внимание, что у вас могут быть другие файлы профиля запуска. .Rprofile - только один возможность. См. ?Startup для получения дополнительной информации. Например, если вы находитесь в Windows, вам может потребоваться посмотреть C:\Program Files\R\etc\Rprofile.site, если он существует.

+0

просто угадывает, но это выглядит точно так, как ожидалось, если (1) отдельный R-сеанс, который Rstudio запускает до вызова 'knitr ', предполагает, что '' находится в текущем рабочем каталоге; (2) '.Rprofile' выполняется в начале этого сеанса; (3) текущий рабочий каталог отличается от '~/Rproject' –

+0

@BenBolker. Я уверен, что локаль была неправильной в исходной проблеме. Я просто не знаю, почему это было испорчено. Рабочий каталог не должен влиять на языковой стандарт. –

+0

Я думал, что языковые предупреждения были отдельной/несвязанной проблемой. –