r - 对R中行的特定部分进行排序?
问题描述
我有一个具有一系列值的矩阵。我计划根据第 1 列中的值绘制第 2 到第 6 列。我已经看到可以对数据列进行排序。如何按大小顺序对每行中的数据进行排序,但忽略第 1 列中的数据?例如,第一行看起来像
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0.05091557 0.05777423 0.07875043 0.08011981 0.09525210
以这种方式对矩阵进行排序时,我应该厌倦什么吗?
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0.05091557 0.07875043 0.08011981 0.09525210 0.05777423
[2,] 2 0.01124827 0.11040450 0.15189661 0.17496065 0.05869832
[3,] 3 0.10205376 0.04264597 0.03424936 0.29083599 0.08650822
[4,] 4 0.12625884 0.02630636 0.08814499 0.06744327 0.04713059
[5,] 5 0.02588615 0.31805945 0.09965736 0.11084963 0.08008907
[6,] 6 0.03488529 0.03275217 0.10867476 0.02974519 0.16357899
[7,] 7 0.07651835 0.04900895 0.17309055 0.13379696 0.11079284
[8,] 8 0.04576330 0.04437211 0.14715493 0.17329859 0.19364271
[9,] 9 0.01288462 0.27600904 0.08185839 0.11899927 0.03254210
[10,] 10 0.05267915 0.10229029 0.03192866 0.01621034 0.16809146
解决方案
尝试这个。当您使用矩阵时,您可以使用apply()
. 在此函数中,您需要在矩阵中设置一个范围。在您的情况下,它将是从第二列到您拥有的最后一列。当输出被转置时,您可以使用t()
初始矩阵中的原始形式,然后使用 与第一列组合cbind()
。这里的代码:
#Code
mat2 <- cbind(mat[,1],t(apply(mat[,2:6],1,function(x) sort(x))))
输出:
mat2
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0.05091557 0.05777423 0.07875043 0.08011981 0.0952521
[2,] 2 0.01124827 0.05869832 0.11040450 0.15189661 0.1749606
[3,] 3 0.03424936 0.04264597 0.08650822 0.10205376 0.2908360
[4,] 4 0.02630636 0.04713059 0.06744327 0.08814499 0.1262588
[5,] 5 0.02588615 0.08008907 0.09965736 0.11084963 0.3180595
[6,] 6 0.02974519 0.03275217 0.03488529 0.10867476 0.1635790
[7,] 7 0.04900895 0.07651835 0.11079284 0.13379696 0.1730906
[8,] 8 0.04437211 0.04576330 0.14715493 0.17329859 0.1936427
[9,] 9 0.01288462 0.03254210 0.08185839 0.11899927 0.2760090
[10,] 10 0.01621034 0.03192866 0.05267915 0.10229029 0.1680915
使用的一些数据:
#Data
mat <- structure(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0.05091557, 0.01124827,
0.10205376, 0.12625884, 0.02588615, 0.03488529, 0.07651835, 0.0457633,
0.01288462, 0.05267915, 0.07875043, 0.1104045, 0.04264597, 0.02630636,
0.31805945, 0.03275217, 0.04900895, 0.04437211, 0.27600904, 0.10229029,
0.08011981, 0.15189661, 0.03424936, 0.08814499, 0.09965736, 0.10867476,
0.17309055, 0.14715493, 0.08185839, 0.03192866, 0.0952521, 0.17496065,
0.29083599, 0.06744327, 0.11084963, 0.02974519, 0.13379696, 0.17329859,
0.11899927, 0.01621034, 0.05777423, 0.05869832, 0.08650822, 0.04713059,
0.08008907, 0.16357899, 0.11079284, 0.19364271, 0.0325421, 0.16809146
), .Dim = c(10L, 6L), .Dimnames = list(NULL, NULL))
推荐阅读
- python - 共享不同标签的点列表中的相图
- entity-framework-core - 在服务器上使用 MAX 评估 EF 查询
- windows - 从绑定重定向中排除本地主机
- verilog - 在always块内生成语句,有可能吗?
- laravel - 如何使用 laravel 到 vue 组件的路由从 url 解析 slug
- forms - 使用 Drupal 8 验证多个电子邮件地址
- reactjs - react-router-dom url 更改但没有视图更新(withRouter 无限刷新)
- javascript - 没有在表单 Drupal 7 上添加 JS
- c# - 从 IQueryable 获取最后一个元素的扩展方法
- javascript - 无法读取未定义的属性“fromProject” – 怎么了?