gpt4 book ai didi

r - 使用每秒 i (i= 1, 3, 5, ....) 切换列中每一行 i 和 i+1 的顺序

转载 作者:行者123 更新时间:2023-12-04 09:16:29 24 4
gpt4 key购买 nike

我有

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 个。所以不用担心速度。
  • 矩阵的行数始终为偶数。

最佳答案

我们可以使用循环逻辑向量来子集 row.names,通过首先 rbind 将其转换为 matrix 来替换名称,删除 dim 带有 c 的属性(转换为 vector)并将其用作行索引

d[c( rbind(row.names(d)[c(FALSE, TRUE)], 
row.names(d)[c(TRUE, FALSE)])),, drop = FALSE]
# [,1]
#a1 -0.43704092
#a 0.41215035
#e 1.47443155
#d -1.78087570
#f2 -0.01673482
#f 0.98952497

关于r - 使用每秒 i (i= 1, 3, 5, ....) 切换列中每一行 i 和 i+1 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com