2013-12-13 34 views
2

我有一個三維陣列中的R「改編」:如何使一個乳膠表的三維陣列中的R

> 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" 

,我想創建一個乳膠表,它是意志的樣子:

  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陣列。

+0

這裏的關鍵問題是並排佈置多個2D表格。我懷疑沒有一個很好的一般化解決方案。一個更簡單的方法是將它們順序排列(當它們在R終端輸出時出現)。 –

回答

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}