我有一个类似下面的矩阵,但有n

set.seed(123)
mt <- replicate(5, sample(1:3, 4, replace = TRUE))
mt
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    3    3    3    1    3
#> [2,]    3    2    1    2    3
#> [3,]    3    2    2    3    1
#> [4,]    2    2    2    1    1

为了逐行排序,我将这段代码与order函数一起使用,类似于here:

od2 <- order(mt[1, ], mt[2, ], mt[3, ], mt[4, ])
mt[, od2]
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    1    3    3    3    3
#> [2,]    2    1    2    3    3
#> [3,]    3    2    2    1    3
#> [4,]    1    2    2    1    2

有没有办法将此代码修改为n行?我的第二个版本的答案给出了comment分,但我没有成功.我对do.call的功能不熟悉.

推荐答案

您可以使用asplit:

mt[,do.call(order, asplit(mt, 1))]
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    3    3    3    3
#[2,]    2    1    2    3    3
#[3,]    3    2    2    1    3
#[4,]    1    2    2    1    2

R相关问答推荐

在ComplexHeatmap中,如何更改anno_barplot()标题的Angular ?

从具有随机模式的字符串中提取值

多个ggpredicate对象的平均值

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

是否可以 Select 安装不带文档的R包以更有效地存储?

如何在R中正确对齐放射状图中的文本

使用tidy—select创建一个新的带有mutate的摘要变量

用值序列对行进行子集化,并标识序列开始的列

迭代通过1个长度的字符串长字符R

如何得到R中唯一的组合群?

即使硬币没有被抛出,也要保持对其的跟踪

使用较长的查询提取具有部分匹配的列表中的较短目标,

R:从geom_ol()中删除轮廓并导出为pdf

从服务器在Shiny中一起渲染图标和文本

在纵向数据集中创建新行

如何计算增加10米(0.01公里)的行?

按镜像列值自定义行顺序

使用ggplot2绘制具有边缘分布的坡度图

在分面的ggplot2条形图中对条形图进行排序,并省略每组未使用的系数级别

如何根据每个子框架中分类因子的唯一计数来过滤子框架列表?