按列名称对矩阵进行排序

2024-04-11

我有以下矩阵“z”:

             0            1            2            3            4            5            8            9           11           12           15           16           17
[1,] 0.9992149 0.0001345895 4.486317e-05 2.243158e-05 6.729475e-05 8.972633e-05 2.243158e-05 4.486317e-05 4.486317e-05 2.243158e-05 2.243158e-05 6.729475e-05 2.243158e-05
[2,] 0.7116196 0.1991475998 6.440108e-02 1.475998e-02 3.275011e-03 8.075370e-04 0.000000e+00 7.851054e-04 1.345895e-04 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
[3,] 0.7473531 0.1313817856 2.954240e-02 1.390758e-02 1.195603e-02 1.518618e-02 2.557201e-03 1.615074e-03 1.166442e-03 4.419022e-03 5.383580e-04 4.486317e-04 4.934948e-04
[4,] 0.2177434 0.4941677882 1.351503e-01 3.319874e-02 2.438313e-02 4.311350e-02 6.146254e-03 9.376402e-03 5.607896e-04 4.934948e-04 1.121579e-04 2.018843e-04 4.486317e-05
               18           20           22           24           31            6           10           35           36           37           38          39
[1,] 2.243158e-05 4.486317e-05 2.243158e-05 6.729475e-05 2.243158e-05 0.000000e+00 0.0000000000 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00 0.000000000
[2,] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 6.729475e-05 0.0001794527 0.0001121579 4.486317e-05 6.729475e-05 3.073127e-03 0.001076716
[3,] 6.505159e-04 2.691790e-04 2.691790e-04 8.972633e-05 0.000000e+00 2.433827e-02 0.0029385375 0.0000000000 2.243158e-05 2.243158e-05 2.243158e-05 0.000000000
[4,] 4.486317e-05 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.279049e-02 0.0024450426 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00 0.000000000
               40           41           42           43           7           13           14           19           21           23           25           26
[1,] 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00 0.000000000 0.0000000000 0.0000000000 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00
[2,] 0.0003364738 6.729475e-05 2.243158e-05 2.243158e-05 0.000000000 0.0000000000 0.0000000000 0.000000e+00 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00
[3,] 0.0000000000 0.000000e+00 0.000000e+00 2.243158e-05 0.006976223 0.0018842530 0.0006280843 4.037685e-04 0.0001794527 1.794527e-04 2.467474e-04 4.486317e-05
[4,] 0.0000000000 0.000000e+00 0.000000e+00 0.000000e+00 0.009129655 0.0004486317 0.0003364738 2.243158e-05 0.0000000000 2.243158e-05 4.486317e-05 0.000000e+00
               27           28           30           32           33           34           54           67           45
[1,] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
[2,] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
[3,] 4.486317e-05 4.486317e-05 2.243158e-05 2.243158e-05 4.486317e-05 2.243158e-05 2.243158e-05 2.243158e-05 0.000000e+00
[4,] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.243158e-05

它们的列名实际上是字符,即"0" and "1"。现在我希望列名是integer。所以我这样做:

colnames(z) <- as.integer(colnames(z)

但是,我不知道如何按列名对矩阵进行排序,以便矩阵从0,1,2,3,4,5,6,7,8,9,10......

数据结构如下:

structure(c(0.999214894571557, 0.71161956034096, 0.747353073126963, 
0.217743382682817, 0.000134589502018843, 0.199147599820547, 0.13138178555406, 
0.49416778824585, 4.48631673396142e-05, 0.0644010767160162, 0.0295423956931359, 
0.135150291610588, 2.24315836698071e-05, 0.0147599820547331, 
0.0139075818752804, 0.0331987438313145, 6.72947510094213e-05, 
0.00327501121579183, 0.0119560340960072, 0.0243831314490803, 
8.97263346792284e-05, 0.000807537012113055, 0.0151861821444594, 
0.0431135038133692, 2.24315836698071e-05, 0, 0.00255720053835801, 
0.00614625392552714, 4.48631673396142e-05, 0.000785105428443248, 
0.00161507402422611, 0.00937640197397936, 4.48631673396142e-05, 
0.000134589502018843, 0.00116644235082997, 0.000560789591745177, 
2.24315836698071e-05, 0, 0.004419021982952, 0.000493494840735756, 
2.24315836698071e-05, 0, 0.00053835800807537, 0.000112157918349035, 
6.72947510094213e-05, 0, 0.000448631673396142, 0.000201884253028264, 
2.24315836698071e-05, 0, 0.000493494840735756, 4.48631673396142e-05, 
2.24315836698071e-05, 0, 0.000650515926424406, 4.48631673396142e-05, 
4.48631673396142e-05, 0, 0.000269179004037685, 0, 2.24315836698071e-05, 
0, 0.000269179004037685, 0, 6.72947510094213e-05, 0, 8.97263346792284e-05, 
0, 2.24315836698071e-05, 0, 0, 0, 0, 6.72947510094213e-05, 0.0243382682817407, 
0.022790489008524, 0, 0.000179452669358457, 0.00293853746074473, 
0.00244504262000897, 0, 0.000112157918349035, 0, 0, 0, 4.48631673396142e-05, 
2.24315836698071e-05, 0, 0, 6.72947510094213e-05, 2.24315836698071e-05, 
0, 0, 0.00307312696276357, 2.24315836698071e-05, 0, 0, 0.00107671601615074, 
0, 0, 0, 0.000336473755047106, 0, 0, 0, 6.72947510094213e-05, 
0, 0, 0, 2.24315836698071e-05, 0, 0, 0, 2.24315836698071e-05, 
2.24315836698071e-05, 0, 0, 0, 0.00697622252131, 0.00912965455361149, 
0, 0, 0.0018842530282638, 0.000448631673396142, 0, 0, 0.000628084342754598, 
0.000336473755047106, 0, 0, 0.000403768506056528, 2.24315836698071e-05, 
0, 0, 0.000179452669358457, 0, 0, 0, 0.000179452669358457, 2.24315836698071e-05, 
0, 0, 0.000246747420367878, 4.48631673396142e-05, 0, 0, 4.48631673396142e-05, 
0, 0, 0, 4.48631673396142e-05, 0, 0, 0, 4.48631673396142e-05, 
0, 0, 0, 2.24315836698071e-05, 0, 0, 0, 2.24315836698071e-05, 
0, 0, 0, 4.48631673396142e-05, 0, 0, 0, 2.24315836698071e-05, 
0, 0, 0, 2.24315836698071e-05, 0, 0, 0, 2.24315836698071e-05, 
0, 0, 0, 0, 2.24315836698071e-05), .Dim = c(4L, 46L), .Dimnames = list(
    NULL, c("0", "1", "2", "3", "4", "5", "8", "9", "11", "12", 
    "15", "16", "17", "18", "20", "22", "24", "31", "6", "10", 
    "35", "36", "37", "38", "39", "40", "41", "42", "43", "7", 
    "13", "14", "19", "21", "23", "25", "26", "27", "28", "30", 
    "32", "33", "34", "54", "67", "45")))

要重新排列矩阵列,您可以使用order:

# m is your matrix
m <- m[, order(as.integer(colnames(m)))]

colnames(m)
# [1] "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "26" "27" "28" "30" "31" "32" "33"
# [34] "34" "35" "36" "37" "38" "39" "40" "41" "42" "43" "45" "54" "67"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按列名称对矩阵进行排序 的相关文章

  • 需要在R中跳过不同数量的行

    我正在使用以下代码来处理我的数据 但最近我意识到使用skip 27 在数据开始之前跳过存储在我的文件中的信息 不是一个好的选择 因为每个文件中要跳过的行数不同我的目标是读取存储在多个文件夹中的各种txt文件 并非所有文件都有相同的列数 列的
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • 自定义轴缩放后 ggplot2 缺少标签

    我正在尝试使用我的 x 轴应用自定义缩放ggplot2 and scales trans new 但是 当我这样做时 一些轴标签丢失了 有人可以帮我弄清楚为什么吗 Setup library tidyverse the data ds lt
  • 无法将“gather”输出的列名称更改为默认名称以外的任何名称

    我正在尝试使用gather in the tidyr包 但我无法更改默认名称的输出列名称 例如 df data frame time 1 100 a 1 100 b 101 200 df long df gt gather foo bar
  • 更改 R 中 ggplot geom_polygon 的颜色方案

    我正在使用地图库和 ggplot 的 geom polygon 创建地图 我只是想将默认的蓝色 红色 紫色配色方案更改为其他颜色 我对 ggplot 非常陌生 所以如果我没有使用正确的数据类型 请原谅 我使用的数据如下所示 gt head
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 是否有weighted.median()函数?

    我正在寻找类似形式的东西weighted mean 我通过搜索找到了一些解决方案 这些解决方案写出了整个函数 但希望有一些更用户友好的解决方案 以下软件包都有计算加权中位数的函数 aroma light isotone limma cwhm
  • ggplot2:带有 geom_line 的 x 轴因子不起作用

    我想要一个线图 其中value绘制为函数expt每级一行var 这是我的数据 lines lt expt var value 1 none p 0 183065327746799 2 none p 0 254234138384241 3 n
  • 使用“assign()”为列表项分配值

    首先了解一些背景 我写了一个中缀函数 本质上取代了这个习惯用法 x length x 1 lt y 或者简单地说x lt append x y 对于向量 这里是 lt function x y xcall lt substitute x x
  • 使用data.table进行聚合

    经过 SO 用户的多次建议后 我终于尝试将我的代码转换为使用data table library data table DT lt data table plate paste0 plate rep 1 2 each 5 id rep c
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 如何在R中实现countifs函数(excel)

    我有一个包含 100000 行数据的数据集 我尝试做一些countifExcel 中的操作 但速度慢得惊人 所以我想知道R中是否可以完成这种操作 基本上 我想根据多个条件进行计数 例如 我可以指望职业和性别 row sex occupati
  • R 中图周围的圆形边框

    我需要在情节周围放置平滑的边框 代码 plot 0 10 0 10 type n xlab X ylab Y box figure col blue 除了简单的蓝线 我如何放置带有圆角的平滑灰线 非常感谢 library grid plot
  • devtools::test() 有效,但 devtools::check() 无效。为什么?

    我正在测试this https github com beanumber etlR 包 以下三件事就可以正常工作 devtools test devtools test file tests testthat R Travis CI 与 R
  • 使用非标准评估公式

    我正在创建一个使用的包非标准评价 http adv r had co nz Computing on the language html跟踪列的含义 该包在函数之间传递数据框 这些函数执行同一组列的各种操作 非标准评估对此非常有用 my s
  • 文件错误(文件,“rt”):complete.cases 程序中的“描述”参数无效

    我正在编写一个 R 函数 该函数读取充满文件的目录并报告每个数据文件中完全观察到的案例的数量 该函数返回一个数据框 其中第一列是文件名称 第二列是完整案例数 such as id nobs 1 108 2 345 etc 这是我写的函数 c
  • 如何使用合并或替换来更新 R 中具有多列的表

    我想做一些与这个问题非常相似的事情 如何使用 merge 更新 R 中的表 https stackoverflow com questions 3190118 how to use merge to update a table in r
  • 用于安装 R 软件包的备用编译器:clang:错误:不支持的选项“-fopenmp”

    我正在尝试在 OS X 10 11 6 上使用 R 版本 3 4 0 安装 rJava 包 install packages rJava type source 我收到以下错误 clang o libjri jnilib Rengine o

随机推荐