如何在R中制作3d数组的乳胶表

时间:2013-12-13 03:36:58

标签: r latex reproducible-research

我在R:

中有一个3d数组“arr”
> v1 <- c("100", "75", "31", "41", "1000", "69")
> v2 <- c("10m", "6h", "5d", "11m", "6h", "5d")
> arr <- array(c(v1, v2), dim=c(3, 2, 2), dimnames=list(c("d1", "d2", "d3"), c("m1", "m2"), c("v1", "v2")))
> arr
, , v1

   m1    m2    
d1 "100" "41"  
d2 "75"  "1000"
d3 "31"  "69"  

, , v2

   m1    m2   
d1 "10m" "11m"
d2 "6h"  "6h" 
d3 "5d"  "5d" 

我想为它创建一个Latex表,它看起来像:

          m1            m2
------------------------------
        v1  v2        v1  v2
------------------------------
d1     100 10m        41 11m
d2      75  6h      1000  6h
d3      31  5d        69  5d

如何使用R将上述表格制作成乳胶? 我知道R包“xtable”可以做我需要的类似的事情。但是,我不知道它是否可以为我制作上面的确切表格。

PS:我也想知道除了上面提到的还有其他方法可以在表格中呈现一个3d数组。

1 个答案:

答案 0 :(得分:1)

> library(xtable)
> xtable(cbind(arr[,'m1',], arr[,'m2',]), align='lrrrr')
% latex table generated in R 3.0.2 by xtable 1.7-1 package
% Fri Dec 13 07:48:13 2013
\begin{table}[ht]
\centering
\begin{tabular}{lrrrr}
  \hline
 & v1 & v2 & v1 & v2 \\ 
  \hline
d1 & 100 & 10m & 41 & 11m \\ 
  d2 & 75 & 6h & 1000 & 6h \\ 
  d3 & 31 & 5d & 69 & 5d \\ 
   \hline
\end{tabular}
\end{table}