我有
d <- matrix(rnorm(6), ncol = 1,
dimnames = list(c("a", "a1", "d", "e", "f", "f2"), NULL))
我想按以下顺序对行进行排序:
a1, a, e, d, f2, f
。笔记:
d
不会超过 16-20 个条目。所以不用担心速度。 最佳答案
切换每对行给我们行号 2, 1, 4, 3, 6, 5 等。因此,转换后第 n 行是第 (n - (-1)^n) 行原始矩阵。
因此,您想要的行顺序是 1:nrow(d) - (-1)^(1:nrow(d))
:
d[1:nrow(d) - (-1)^(1:nrow(d)), , drop = FALSE]
# [,1]
# a1 0.1228430
# a -1.4051684
# e -0.7928203
# d 1.3270429
# f2 0.3554126
# f -1.1388026
关于r - 使用每秒 i (i= 1, 3, 5, ....) 为列中的每一行 i 和 i+1 切换顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53561849/