首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将data.frame从R转到没有“行号”(和书签)的Latex

将data.frame从R转到没有“行号”(和书签)的Latex
EN

Stack Overflow用户
提问于 2014-01-25 13:14:57
回答 1查看 1.3K关注 0票数 3

我希望将R中的data.frame转置(即向量为列),并将其导出到没有行号的Latex中,而是使用一列。我想要这样的产出:

代码语言:javascript
复制
df <- data.frame(qwertz=c("a","b","c","d","e","f"), asdfg=c("a","b"))

代码语言:javascript
复制
    qwertz asdfg
1      a     a
2      b     b
3      c     a
4      d     b
5      e     a
6      f     b

当我使用xtable和书签时

代码语言:javascript
复制
library(xtable)
print(xtable(t(df)), include.colnames=FALSE, booktabs=TRUE)

乳胶外翻

代码语言:javascript
复制
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

我也尝试过ENmiscENmiscHmiscLatex(),在阅读了这两个问题之后:

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-25 14:31:15

您可以使用add.to.row参数

代码语言:javascript
复制
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 LaTeX环境中使用它,您可以这样做

代码语言:javascript
复制
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}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21351031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档