2015-02-13 6 views
5

Vorrei memorizzare una stringa di matematica in lattice in linea in un oggetto r, quindi restituire questa stringa in modo che quando viene eseguito il comando rmarkdown, viene emessa un'equazione in lattice PDF. Ho un errore quando includo "\ beta" nella stringa. Ecco l'esempio:stampa equazioni in linea in lattice dalla variabile in R, problemi con beta

--- 
title: "Untitled" 
author: "Tedward" 
date: "February 12, 2015" 
output: pdf_document 
--- 

```{r} 
b_0<-"$\beta_0$" 
``` 

`r b_0` 

errore:

>output file: Test_beta.knit.md 
> 
>! Package inputenc Error: Keyboard character used is undefined 
>(inputenc)    in inputencoding `utf8'. 
> 
>See the inputenc package documentation for explanation. 
>Type H <return> for immediate help. 
> ...            
>             
>l.97 $^^H 
> 
>Try running pandoc with --latex-engine=xelatex. 
>pandoc: Error producing PDF from TeX source 
>Error: pandoc document conversion failed with error 43 
>Execution halted 

Questo è lo stesso errore che avrei avuto se ho copiato e incollato un carattere beta nel file rmarkdown. Ho pensato (e ho provato un po ') a cambiare la codifica in modo da includere la beta come personaggio, ma ho capito che non avrebbe risolto il mio problema. Ho bisogno della riga di testo per leggere $ \ beta $, non $ β $. Ho provato a modificare la stringa per non includere "$":

```{r} 
b_0<-"\beta_0" 
``` 

$`r b_0`$ 

E l'errore è lo stesso. Penso che quello che sto scoprendo è che R sta leggendo "\ beta" e lo converte in β, che non è quello che voglio.

Quello che mi piacerebbe essere emesso è β con 0 come pedice.

Si prega di perdonare la mia ignoranza su come funzionano queste cose (non sono sicuro di come r, rmarkdown, latex, knitr e pandoc interagiscano tutti per produrre il pdf finale).

Il mio obiettivo finale è creare una tabella di grandi dimensioni con equazioni in lattice (che includono \ beta). Mi piacerebbe memorizzare le equazioni come variabili in modo che siano facili da modificare in un'unica posizione. Se conosci un altro modo per ottenere questo, lo apprezzerei. Immagino che questo sia possibile in LaTex, ma ho più esperienza con rmarkdown e quindi questa è la mia preferenza. Il mio pensiero/speranza è che probabilmente c'è qualcosa di semplice che mi manca qui.

sto lavorando in Rstudio (0.98.1091.) Su OS X 10.10.2, con R 3.0.3

+0

Avrete quasi certamente bisogno di uscire dalla barra inversa con un altro, ad es. 'b_0 =" $ \\ beta_0 $ "'. Tuttavia, potresti aver bisogno di un punto personalizzato o di un rovescio o qualcosa del genere (sono pessimo con la terminologia di knitr) per assicurarmi che questo codice in linea abbia l'equivalente dell'opzione "output = 'asis''. Ma provalo con il doppio backslash e vedi se è abbastanza. – Gregor

risposta

6

Dopo aver testato il mio commento, sembra che funziona bene senza ulteriori complicazioni.

Una barra rovesciata è un carattere speciale nelle stringhe R, quindi è necessario scappare con un'altra barra rovesciata. Knitting:

--- 
title: "beta test" 
author: "Gregor" 
date: "Friday, February 13, 2015" 
output: pdf_document 
--- 

```{r} 
b0 = "$\\beta_0$" 
``` 
Let's see if it works: `r b0`. 

rendimenti:

enter image description here

rovesciare nelle stringhe è un R-FAQ abbastanza comune. Per ulteriori informazioni, vedere here o here.

+1

Gregor, sei il mio eroe per il giorno. Sapevo che doveva essere qualcosa del genere, grazie per il tuo aiuto. Grazie anche per i link utili. – Tedward