我有一个数据集用于创建表,但现在我希望输出按字母顺序排序。 order
,sort
或sort.list
我无法开展工作。这是我所拥有的一个例子。
library(maptools)
data(wrld_simpl)
tab.test <- xtable(subset(wrld_simpl@data, 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}
我希望能够按NAME
,REGION
甚至第一列(ISO3
对其进行排序,这似乎是默认的左列。我感谢你的帮助,包括对类似问题的暗示(在寻找治疗方法时我可能忽略了它们)。
答案 0 :(得分:1)
据我所知,这与xtable
无关
鉴于wrld_simpl
是SpatialPolygonsDataFrame
,我认为使用试图修改data
对象的S4
广告位副本会更容易。
plyr
包有一个很好的函数arrange
,这使得排序变得容易。目前尚不清楚您是否希望按NAME
然后REGION
排列这些内容,因此我将仅通过NAME
提供排序示例
wrld_data <- wrld_simpl@data
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}