对表中的数据进行排序

时间:2016-09-27 07:03:31

标签: r

例如,现在我得到了表

   A B C
 A 0 4 1
 B 2 1 3
 C 5 9 6

我喜欢按照自己定义的顺序对列和行进行排序,以实现

   B A C
 B 1 2 3
 A 4 0 1
 C 9 5 6

2 个答案:

答案 0 :(得分:1)

这可以在基础R中完成。首先我们制作示例数据:

# make example data
df.text <- 'A B C
0 4 1
2 1 3
5 9 6'

df <- read.table(text = df.text, header = T)
rownames(df) <- LETTERS[1:3]

  A B C
A 0 4 1
B 2 1 3
C 5 9 6

然后我们使用命名索引的向量重新排序列和行:

# re-order data
defined.order <- c('B', 'A', 'C')
df <- df[, defined.order]
df <- df[defined.order, ]

  B A C
B 1 2 3
A 4 0 1
C 9 5 6

答案 1 :(得分:0)

如果定义的订单

的形式给出
defined_order <- c("B", "A", "C")

,初始表由

创建
library(data.table)
# create data first
dt <- fread("
id A B C
 A 0 4 1
 B 2 1 3
 C 5 9 6")
# note that row names are added as own id column

然后您可以使用data.table获得所需的结果,如下所示:

# change column order
setcolorder(dt, c("id", defined_order))
# change row order
dt[order(defined_order)]
#    id B A C
# 1:  B 1 2 3
# 2:  A 4 0 1
# 3:  C 9 5 6