2014-03-14 40 views
2

我有一些代碼用於在Knitr中創建表。我手動鍵入了一些數字以使代碼可重現。由Latex()從Hmisc包和Knitr生成的乳膠表的奇怪行爲

Expenditure <- as.matrix(data.frame(c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"),c("41","55","71","84"))) 
rownames(Expenditure) <- c("30000","40000","50000","60000") 
colnames(Expenditure) <- as.character(seq(0,0.35,0.05)*100) 
latex(Expenditure, 
     n.cgroup=c(8), cgroup=c("Largest Historical Drawdown"), 
     file="", 
     ctable=TRUE, caption="Shortfall Risk Table", caption.loc=c('top'), label="tab:SfRisk") 

這給出了以下乳膠代碼:

%latex.default(Expenditure, n.cgroup = c(8), cgroup = c("Largest Historical Drawdown"),  file = "", ctable = TRUE, caption = "Shortfall Risk Table",  caption.loc = c("top"), label = "tab:SfRisk")% 
\ctable[caption={Shortfall Risk Table}label=tab:SfRisk,pos=!tbp,]{lllllllll}{}{\FL 
\multicolumn{1}{l}{\bfseries Expenditure}&\multicolumn{8}{c}{\bfseries Largest Historical Drawdown}\NN 
\cline{2-9} 
\multicolumn{1}{l}{}&\multicolumn{1}{c}{0}&\multicolumn{1}{c}{5}&\multicolumn{1}{c}{10}&\multicolumn{1}{c}{15}&\multicolumn{1}{c}{20}&\multicolumn{1}{c}{25}&\multicolumn{1}{c}{30}&\multicolumn{1}{c}{35}\ML 
30000&41&41&41&41&41&41&41&41\NN 
40000&55&55&55&55&55&55&55&55\NN 
50000&71&71&71&71&71&71&71&71\NN 
60000&84&84&84&84&84&84&84&84\LL 
} 

這將產生一個乳膠表,但標題已經有「標籤」添加到末尾的話,那麼它說:「虧損風險Tablelabel」 。 「Tablelabel」這個詞不會出現在.tex文件的任何地方。我已經尋找了解決方案,但我找不到任何東西。任何幫助非常感謝!

我無法發佈圖片,因爲我沒有足夠高的「聲譽」,顯然。所以我已經把一個放在johnbutters.org/examples

+2

逗號是否錯誤:在

+0

就是這樣!謝謝。看起來像Hmisc中的latex()函數中的錯誤...? – user33102

回答

2

根據cbeleites的評論,這是一個來自latex()函數的ctable代碼的問題。解決方案是「ctable = FALSE」。這仍然給出稍微奇怪的輸出行:「\ caption {Shortfall Risk Table \ label {tab:SfRisk}}」但最終輸出看起來不錯。