2016-05-31 4 views
1

Я пытаюсь использовать R и Sweave для цветового кода таблицы, как описано в this question. У меня есть следующий код:Ошибка при попытке цветового кода Sweave xtable

<<>>= 
Overall <- data$FLAG_OVERALL_HOSP 
DC_Info <- data$FLAG_DC_INFO 
Care_Trans <- data$FLAG_CARE_TRANS 
Dept <- data$DEPT_DSC 
HOSP <- data$ALPHA_CODE 
Flag <- data.frame(HOSP,Dept, Overall, DC_Info, Care_Trans) 
@ 
<<results=tex>>= 
color_cells <- function(df, var){ 
out <- ifelse(df[, var]=="", 
        paste0("\\cellcolor[HTML]{2DB200}{", df[, var], "}"), 
        paste0("\\cellcolor[HTML]{FF0600}{", df[, var], "}")) 
} 
Flag$Overall <- color_cells(df = Flag, var= "Overall") 
Flag$DC_Info <- color_cells(df = Flag, var= "DC_Info") 
Flag$Care_Trans <- color_cells(df = Flag, var= "Care_Trans") 
@ 

<<results=tex>>= 
Flagx <- xtable(Flag) 
align(Flagx) <- "|c|l|l|c|c|c|" 
print(Flagx[1:40,], hline.after=c(-1:40), sanitize.text.function=identity) 
@ 
<<results=tex>>= 
Flagx <- xtable(Flag) 
align(Flagx) <- "|c|l|l|c|c|c|" 
print(Flagx[41:62,], hline.after=c(-1:22), sanitize.text.function=identity) 
@ 

Но я получаю следующее сообщение:

Error Message I'm getting

Что я делаю неправильно здесь?

Edit: Вот небольшая часть моих данных

ALPHA_CODE <- c(AF, DX, DX) 
Dept <- c(MSN, ICU, PEDS) 
OVERALL<- c(NA,NA,1) 
DC_Info <- c(NA,NA,NA) 
Care_Trans <- c(1,NA,NA) 
Flag <- data.frame(HOSP,Dept, Overall, DC_Info, Care_Trans) 
+0

каждый код кусок должен быть между '<<>> =' и '@', вы, кажется, отсутствует один '<<>> =' – rawr

+0

@rawr см редактирования, сделанные в коде - я все еще получаю такое же сообщение об ошибке. –

+0

Можете ли вы включить данные, которые предоставят нам [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

ответ

2

Теперь, когда я нахожусь на компьютере я вижу проблему. У ваших имен столбцов есть символы подчеркивания, и LaTeX предполагает, что вы хотите подмножить символ, и это работает только в математическом режиме. (т.е. между $ символами).

По моему опыту, когда я получаю «Потерялись $ вставлено» ошибка, это означает, что либо

  1. Я не интерпретировать мой вывод как LaTeX (results = tex обычно то, что я забыл. Или
  2. я не смог избежать специальный символ, который предполагается в математическом режиме (например, как $, _ и др. хороший список из них в документации Hmisc::latexTranslate.

раствор, в вашем случае - дезинформировать имена столбцов.

print(Flagx[41:62,], 
    hline.after=c(-1:22), 
    sanitize.text.function=identity, 
    sanitize.colnames.function = Hmisc::latexTranslate) 
+0

Должен ли я использовать этот точный кусок кода выше? Я попытался, и я получил следующее сообщение: '! Ошибка LaTeX: Файл 'Hmisc.sty 'не найден.' –

+0

Вам нужно установить пакет 'Hmisc' (' install.packages («Hmisc»)), но мне никогда не приходилось делать что-либо помимо этого , – Benjamin

+0

Я уже сделал это и получаю эту ошибку. –

Смежные вопросы