2016-05-31 10 views
1

this questionで説明されているように、RとSweaveを使用して表の色分けを行っています。私は、次のコードを持っている:エラーコード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

を私はここで間違って何をしているのですか?

編集:はここに今、私は問題を見コンピュータでだというのが私のデータ

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 1が欠けているように見えます同じエラーメッセージ。 –

+0

[再現可能な例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)を提供するデータを含めてください。 –

答えて

2

のごく一部です。あなたのカラム名にはアンダースコアがあり、LaTeXは文字をサブセット化することを意味していると仮定し、それは数学モードでしか動作しない傾向があります。 (すなわち、$文字の間)。私の経験で

、私は「ミッシング$挿入」エラーを取得するとき、それは私がresults = texは私が忘れてしまった、通常は何である(ラテックスとしての私の出力を解釈する。または ていませんでした

  1. のいずれかを意味します
  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

私はすでにそれをして、そのエラーを取得しています。 –