2014-01-25 48 views
3

我想將R中的data.frame轉置(即向量作爲列),並將其導出到Latex而不使用行數,但是使用列。我想有一個像這樣的輸出:將數據幀從R轉換爲Latex而沒有「rownumber」(和booktabs)

Tab

df <- data.frame(qwertz=c("a","b","c","d","e","f"), asdfg=c("a","b")) 

qwertz asdfg 
1  a  a 
2  b  b 
3  c  a 
4  d  b 
5  e  a 
6  f  b 

當我使用xtable和booktabs

library(xtable) 
print(xtable(t(df)), include.colnames=FALSE, booktabs=TRUE) 

LA TEX outpout是

Tab

print(xtable(t(df)), include.colnames=FALSE, booktabs=TRUE) 
% latex table generated in R 3.0.2 by xtable 1.7-1 package 
\begin{table}[ht] 
    \centering 
    \begin{tabular}{rllllll} 
     \toprule 
     \midrule 
     qwertz & a & b & c & d & e & f \\ 
     asdfg & a & b & a & b & a & b \\ 
     \bottomrule 
    \end{tabular} 
\end{table} 

問:我怎麼能有直接的兩條線之間的\midrule

我試着用toLatex()ENmiscLatex()Hmisc太和閱讀這兩個問題後:

https://tex.stackexchange.com/q/25575/36408

https://tex.stackexchange.com/q/75793/36408

+0

你能編輯'xtable'輸出嗎? – gung

+1

xtable()ist從軟件包'xtable' [這裏](http://cran.r-project.org/web/packages/xtable/index.html) – nebi

回答

2

可以使用add.to.row參數

library(xtable) 
df <- data.frame(qwertz=c("a","b","c","d","e","f"), asdfg=c("a","b")) 
df <- t(df) 
n <- nrow(df) 

print(xtable(df), hline.after = NULL, 
     include.colnames = FALSE, 
     add.to.row = list(pos = list(0, 1, n), 
     command = c('\\toprule[1.5pt]\n', '\\midrule[1pt]\n', '\\bottomrule[1.5pt]\n'))) 
## % latex table generated in R 3.0.2 by xtable 1.7-1 package 
## % Sat Jan 25 14:32:34 2014 
## \begin{table}[ht] 
## \centering 
## \begin{tabular}{rllllll} 
## \toprule[1.5pt] 
## qwertz & a & b & c & d & e & f \\ 
## \midrule[1pt] 
## asdfg & a & b & a & b & a & b \\ 
## \bottomrule[1.5pt] 
## \end{tabular} 
## \end{table} 

要用它 與longtable乳膠環境,你可以做這樣的事情

print(xtable(df), 
     tabular.environment = "longtable", 
     floating = FALSE, 
     hline.after = NULL, 
     include.colnames = FALSE, 
     booktabs = TRUE, 
     add.to.row = list(pos = list(0, 1, n), 
     command = c('\\toprule[1.5pt]\n', '\\midrule[1pt]\n', '\\bottomrule[1.5pt]\n'))) 
## % latex table generated in R 3.0.2 by xtable 1.7-1 package 
## % Mon Jan 27 13:00:01 2014 
## \begin{longtable}{rllllll} 
## \toprule[1.5pt] 
## qwertz & a & b & c & d & e & f \\ 
## \midrule[1pt] 
## asdfg & a & b & a & b & a & b \\ 
## \bottomrule[1.5pt] 
## \end{longtable} 
+0

任何有關如何刪除\ hline的想法如果你使用tabular.environment ='longtable'作爲print()函數的參數?有了這個參數,它會產生\ bottomrule [1,5pt] AND \ hline。我將\ bottomrule的厚度更改爲[0.3em],它工作正常,但代碼看起來不太好。 – nebi

+1

@nebi看我的編輯 – dickoa