例如,现在我得到了表
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
答案 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