[R] Input encoding problem when using sweave with xetex

Erich Studerus erich.studerus at bli.uzh.ch
Wed May 12 20:29:44 CEST 2010


Thank you! I edited the Sweave.sh file and it works now for reading data 
stored as R data files, but the read.xls function from the gdata-package 
does no longer work.

options('encoding'='UTF-8')
require(gdata)
read.xls("http://www.schwerhoerigkeit.pop.ch/hoergeraete_test.xls", 
stringsAsFactors = F)[2,2]

This gives NA as output and a warning that there was an invalid entry for 
the connection. Is there a way to use read.xls with UTF-8 encoding?





On Wed, 12 May 2010 12:45:51 -0400
  Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
> On 12/05/2010 11:36 AM, Erich Studerus wrote:
>> Putting \usepackage[cp1252]{inputenc} into my preamble is not an option,
>> because XeTeX unlike LaTeX needs UTF-8 has input encoding. My goal is also
>> to have a LyX document that can be compiled both on Mac and Windows.
>>
>> I usually compile my Lyx-Sweave documents by one click of a button from
>> within Lyx. R code chunks are therefore executed by calling R from the
>> command line. If anybody knows how to run R with options(encoding="UTF-8")
>> from the command line under windows, that would be helpful.
>>
>> The command that calls R during compilation is contained in this file:
>> http://cran.r-project.org/contrib/extra/lyx/preferences
>>   
> 
> 
> You can do it with a little work.  If you look at the rhome/bin/Sweave.sh 
>file, you'll see that
> 
> R CMD Sweave file.Rnw
> 
> just executes something like
> 
> echo "library(\"utils\"); Sweave(\"file.Rnw\")" | R --no-restore --slave
> 
> What you want is to execute
> 
> echo "library(\"utils\"); options(encoding="UTF-8"); Sweave(\"file.Rnw\")" 
>| R --no-restore --slave
> 
> You could edit the rhome/bin/Sweave.sh file appropriately if you always 
>want Sweave to use UTF-8, or you could edit your Lyx preference file to put 
>in a line like this instead of what it had.
> 
> Duncan Murdoch



More information about the R-help mailing list