2012-11-05 50 views
1

我有一個數據集,我用它創建了一個表,但現在我希望輸出按字母順序排序。 order,sortsort.list我不工作。這是我所擁有的一個例子。xtable的排序輸出

library(maptools) 
data(wrld_simpl) 
tab.test <- xtable(subset([email protected], select=c(NAME, REGION))) 
head(tab.test) 
% latex table generated in R 2.15.1 by xtable 1.7-0 package 
% Sun Nov 4 19:58:19 2012 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rll} 
    \hline 
& NAME & REGION \\ 
    \hline 
ATG & Antigua and Barbuda & 19 \\ 
DZA & Algeria & 2 \\ 
AZE & Azerbaijan & 142 \\ 
ALB & Albania & 150 \\ 
ARM & Armenia & 142 \\ 
AGO & Angola & 2 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 

我希望能夠通過NAMEREGION甚至第一列,這是ISO3,似乎是默認的左欄排序。我感謝你的幫助,包括對類似問題的暗示(我在尋找治療期間可能忽略了他們)。

+1

這似乎與xtable無關,請發佈一個可重複的例子,包括什麼'wrld_smpl',或者它是一個數據集的包。 – mnel

+0

我同意mnel。你想排序一個數據幀。在這種情況下,使用'訂單'並將其提供給'xtable' –

回答

1

這有什麼好做xtable據我可以看到

鑑於wrld_simplSpatialPolygonsDataFrame我認爲這將是更容易與data插槽,試圖修改S4對象的拷貝工作。

plyr包有一個很好的功能arrange這使得訂購容易。目前尚不清楚是否要他們安排的NAME然後REGION所以我會通過NAME單獨

wrld_data <- [email protected] 


library(plyr) 

arranged_data <- arrange(wrld_data, NAME) 
# this was nice syntax for 
# wrld_data[order(wrld_data$NAME),] 

# subset colums 
subset_data <- subset(arranged_data, select = c(NAME, REGION)) 

head(subset_data) 

      NAME REGION 
1 Aaland Islands 150 
2 Afghanistan 142 
3  Albania 150 
4  Algeria  2 
5 American Samoa  9 
6  Andorra 150 

給訂貨的例子,只是爲了顯示你的問題沒有xtable相關

.x <- xtable(subset_data) 

head(.x) 
% latex table generated in R 2.15.2 by xtable 1.7-0 package 
% Mon Nov 05 13:03:27 2012 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rlr} 
    \hline 
& NAME & REGION \\ 
    \hline 
1 & Aaland Islands & 150 \\ 
    2 & Afghanistan & 142 \\ 
    3 & Albania & 150 \\ 
    4 & Algeria & 2 \\ 
    5 & American Samoa & 9 \\ 
    6 & Andorra & 150 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 
+0

謝謝!它做得很好。 – Gerit