我在R中有一个这样的矩阵:

bio1 bio10 bio11 bio12 bio13 bio14 bio15 bio16 bio17 bio18 bio19  bio2  bio3  bio4  bio5  bio6  bio7  bio8  bio9
bio1   1.00  0.90  0.91 -0.40 -0.21 -0.54  0.71 -0.22 -0.54 -0.57  0.02  0.45  0.45 -0.13  0.84  0.85  0.05 -0.07  0.73
bio10  0.90  1.00  0.64 -0.60 -0.44 -0.64  0.57 -0.45 -0.65 -0.68 -0.19  0.48  0.19  0.32  0.97  0.56  0.44  0.02  0.71
bio11  0.91  0.64  1.00 -0.13  0.04 -0.35  0.71  0.04 -0.35 -0.38  0.23  0.32  0.58 -0.52  0.57  0.98 -0.33 -0.15  0.62
bio12 -0.40 -0.60 -0.13  1.00  0.93  0.74 -0.23  0.94  0.76  0.71  0.78 -0.31  0.07 -0.51 -0.60 -0.04 -0.55 -0.08 -0.40
bio13 -0.21 -0.44  0.04  0.93  1.00  0.48  0.06  1.00  0.50  0.51  0.87 -0.19  0.19 -0.55 -0.43  0.11 -0.53 -0.17 -0.22
bio14 -0.54 -0.64 -0.35  0.74  0.48  1.00 -0.64  0.50  0.99  0.90  0.27 -0.44 -0.17 -0.28 -0.67 -0.25 -0.43  0.27 -0.65
bio15  0.71  0.57  0.71 -0.23  0.06 -0.64  1.00  0.05 -0.64 -0.56  0.21  0.64  0.67 -0.25  0.62  0.60  0.06 -0.45  0.68
bio16 -0.22 -0.45  0.04  0.94  1.00  0.50  0.05  1.00  0.52  0.52  0.88 -0.19  0.19 -0.54 -0.44  0.11 -0.53 -0.17 -0.23
bio17 -0.54 -0.65 -0.35  0.76  0.50  0.99 -0.64  0.52  1.00  0.90  0.29 -0.46 -0.18 -0.29 -0.69 -0.25 -0.45  0.27 -0.65
bio18 -0.57 -0.68 -0.38  0.71  0.51  0.90 -0.56  0.52  0.90  1.00  0.18 -0.43 -0.16 -0.29 -0.71 -0.29 -0.44  0.38 -0.75
bio19  0.02 -0.19  0.23  0.78  0.87  0.27  0.21  0.88  0.29  0.18  1.00 -0.02  0.31 -0.50 -0.17  0.28 -0.42 -0.36  0.07
bio2   0.45  0.48  0.32 -0.31 -0.19 -0.44  0.64 -0.19 -0.46 -0.43 -0.02  1.00  0.76  0.13  0.66  0.13  0.53 -0.33  0.47
bio3   0.45  0.19  0.58  0.07  0.19 -0.17  0.67  0.19 -0.18 -0.16  0.31  0.76  1.00 -0.52  0.31  0.47 -0.13 -0.37  0.36
bio4  -0.13  0.32 -0.52 -0.51 -0.55 -0.28 -0.25 -0.54 -0.29 -0.29 -0.50  0.13 -0.52  1.00  0.37 -0.58  0.90  0.21  0.02
bio5   0.84  0.97  0.57 -0.60 -0.43 -0.67  0.62 -0.44 -0.69 -0.71 -0.17  0.66  0.31  0.37  1.00  0.45  0.57 -0.08  0.72
bio6   0.85  0.56  0.98 -0.04  0.11 -0.25  0.60  0.11 -0.25 -0.29  0.28  0.13  0.47 -0.58  0.45  1.00 -0.47 -0.08  0.54
bio7   0.05  0.44 -0.33 -0.55 -0.53 -0.43  0.06 -0.53 -0.45 -0.44 -0.42  0.53 -0.13  0.90  0.57 -0.47  1.00  0.00  0.22
bio8  -0.07  0.02 -0.15 -0.08 -0.17  0.27 -0.45 -0.17  0.27  0.38 -0.36 -0.33 -0.37  0.21 -0.08 -0.08  0.00  1.00 -0.48
bio9   0.73  0.71  0.62 -0.40 -0.22 -0.65  0.68 -0.23 -0.65 -0.75  0.07  0.47  0.36  0.02  0.72  0.54  0.22 -0.48  1.00
correlation_bio <- `structure(c(1, 0.9, 0.91, -0.4, -0.21, -0.54, 0.71, -0.22, -0.54,  -0.57, 0.02, 0.45, 0.45, -0.13, 0.84, 0.85, 0.05, -0.07, 0.73,  0.9, 1, 0.64, -0.6, -0.44, -0.64, 0.57, -0.45, -0.65, -0.68,  -0.19, 0.48, 0.19, 0.32, 0.97, 0.56, 0.44, 0.02, 0.71, 0.91,  0.64, 1, -0.13, 0.04, -0.35, 0.71, 0.04, -0.35, -0.38, 0.23,  0.32, 0.58, -0.52, 0.57, 0.98, -0.33, -0.15, 0.62, -0.4, -0.6,  -0.13, 1, 0.93, 0.74, -0.23, 0.94, 0.76, 0.71, 0.78, -0.31, 0.07,  -0.51, -0.6, -0.04, -0.55, -0.08, -0.4, -0.21, -0.44, 0.04, 0.93,  1, 0.48, 0.06, 1, 0.5, 0.51, 0.87, -0.19, 0.19, -0.55, -0.43,  0.11, -0.53, -0.17, -0.22, -0.54, -0.64, -0.35, 0.74, 0.48, 1,  -0.64, 0.5, 0.99, 0.9, 0.27, -0.44, -0.17, -0.28, -0.67, -0.25,  -0.43, 0.27, -0.65, 0.71, 0.57, 0.71, -0.23, 0.06, -0.64, 1,  0.05, -0.64, -0.56, 0.21, 0.64, 0.67, -0.25, 0.62, 0.6, 0.06,  -0.45, 0.68, -0.22, -0.45, 0.04, 0.94, 1, 0.5, 0.05, 1, 0.52,  0.52, 0.88, -0.19, 0.19, -0.54, -0.44, 0.11, -0.53, -0.17, -0.23,  -0.54, -0.65, -0.35, 0.76, 0.5, 0.99, -0.64, 0.52, 1, 0.9, 0.29,  -0.46, -0.18, -0.29, -0.69, -0.25, -0.45, 0.27, -0.65, -0.57,  -0.68, -0.38, 0.71, 0.51, 0.9, -0.56, 0.52, 0.9, 1, 0.18, -0.43,  -0.16, -0.29, -0.71, -0.29, -0.44, 0.38, -0.75, 0.02, -0.19,  0.23, 0.78, 0.87, 0.27, 0.21, 0.88, 0.29, 0.18, 1, -0.02, 0.31,  -0.5, -0.17, 0.28, -0.42, -0.36, 0.07, 0.45, 0.48, 0.32, -0.31,  -0.19, -0.44, 0.64, -0.19, -0.46, -0.43, -0.02, 1, 0.76, 0.13,  0.66, 0.13, 0.53, -0.33, 0.47, 0.45, 0.19, 0.58, 0.07, 0.19,  -0.17, 0.67, 0.19, -0.18, -0.16, 0.31, 0.76, 1, -0.52, 0.31,  0.47, -0.13, -0.37, 0.36, -0.13, 0.32, -0.52, -0.51, -0.55, -0.28,  -0.25, -0.54, -0.29, -0.29, -0.5, 0.13, -0.52, 1, 0.37, -0.58,  0.9, 0.21, 0.02, 0.84, 0.97, 0.57, -0.6, -0.43, -0.67, 0.62,  -0.44, -0.69, -0.71, -0.17, 0.66, 0.31, 0.37, 1, 0.45, 0.57,  -0.08, 0.72, 0.85, 0.56, 0.98, -0.04, 0.11, -0.25, 0.6, 0.11,  -0.25, -0.29, 0.28, 0.13, 0.47, -0.58, 0.45, 1, -0.47, -0.08,  0.54, 0.05, 0.44, -0.33, -0.55, -0.53, -0.43, 0.06, -0.53, -0.45,  -0.44, -0.42, 0.53, -0.13, 0.9, 0.57, -0.47, 1, 0, 0.22, -0.07,  0.02, -0.15, -0.08, -0.17, 0.27, -0.45, -0.17, 0.27, 0.38, -0.36,  -0.33, -0.37, 0.21, -0.08, -0.08, 0, 1, -0.48, 0.73, 0.71, 0.62,  -0.4, -0.22, -0.65, 0.68, -0.23, -0.65, -0.75, 0.07, 0.47, 0.36,  0.02, 0.72, 0.54, 0.22, -0.48, 1), dim = c(19L, 19L), dimnames = list(     c("bio1", "bio10", "bio11", "bio12", "bio13", "bio14", "bio15",      "bio16", "bio17", "bio18", "bio19", "bio2", "bio3", "bio4",      "bio5", "bio6", "bio7", "bio8", "bio9"), c("bio1", "bio10",      "bio11", "bio12", "bio13", "bio14", "bio15", "bio16", "bio17",      "bio18", "bio19", "bio2", "bio3", "bio4", "bio5", "bio6",      "bio7", "bio8", "bio9")))`

如您所见,行和列都以"bio 1"开头,但随后以"bio 10"开头,而不是"biO2".

行和列都应该这样排序:"Bio1"、"BiO2"、"Bio3"、"Bio4"、"Bio5"、"Bio6"、"Bio7"、"Bio8"、"Bio9"、"Bio10"、"Bio11"、"Bio12"、"Bio13"、"Bio14"、"Bio15"、"Bio16"、"Bio17"、"Bio18"、"Bio19".

我怎么才能解决这个问题呢?

推荐答案

在R垒上你可以做

ind <- order(as.numeric(sub('bio', '', row.names(correlation_bio))))
correlation_bio <- correlation_bio[ind, ind]

导致

correlation_bio
#>        bio1  bio2  bio3  bio4  bio5  bio6  bio7  bio8  bio9 bio10 bio11 bio12 bio13 bio14 bio15 bio16 bio17 bio18 bio19
#> bio1   1.00  0.45  0.45 -0.13  0.84  0.85  0.05 -0.07  0.73  0.90  0.91 -0.40 -0.21 -0.54  0.71 -0.22 -0.54 -0.57  0.02
#> bio2   0.45  1.00  0.76  0.13  0.66  0.13  0.53 -0.33  0.47  0.48  0.32 -0.31 -0.19 -0.44  0.64 -0.19 -0.46 -0.43 -0.02
#> bio3   0.45  0.76  1.00 -0.52  0.31  0.47 -0.13 -0.37  0.36  0.19  0.58  0.07  0.19 -0.17  0.67  0.19 -0.18 -0.16  0.31
#> bio4  -0.13  0.13 -0.52  1.00  0.37 -0.58  0.90  0.21  0.02  0.32 -0.52 -0.51 -0.55 -0.28 -0.25 -0.54 -0.29 -0.29 -0.50
#> bio5   0.84  0.66  0.31  0.37  1.00  0.45  0.57 -0.08  0.72  0.97  0.57 -0.60 -0.43 -0.67  0.62 -0.44 -0.69 -0.71 -0.17
#> bio6   0.85  0.13  0.47 -0.58  0.45  1.00 -0.47 -0.08  0.54  0.56  0.98 -0.04  0.11 -0.25  0.60  0.11 -0.25 -0.29  0.28
#> bio7   0.05  0.53 -0.13  0.90  0.57 -0.47  1.00  0.00  0.22  0.44 -0.33 -0.55 -0.53 -0.43  0.06 -0.53 -0.45 -0.44 -0.42
#> bio8  -0.07 -0.33 -0.37  0.21 -0.08 -0.08  0.00  1.00 -0.48  0.02 -0.15 -0.08 -0.17  0.27 -0.45 -0.17  0.27  0.38 -0.36
#> bio9   0.73  0.47  0.36  0.02  0.72  0.54  0.22 -0.48  1.00  0.71  0.62 -0.40 -0.22 -0.65  0.68 -0.23 -0.65 -0.75  0.07
#> bio10  0.90  0.48  0.19  0.32  0.97  0.56  0.44  0.02  0.71  1.00  0.64 -0.60 -0.44 -0.64  0.57 -0.45 -0.65 -0.68 -0.19
#> bio11  0.91  0.32  0.58 -0.52  0.57  0.98 -0.33 -0.15  0.62  0.64  1.00 -0.13  0.04 -0.35  0.71  0.04 -0.35 -0.38  0.23
#> bio12 -0.40 -0.31  0.07 -0.51 -0.60 -0.04 -0.55 -0.08 -0.40 -0.60 -0.13  1.00  0.93  0.74 -0.23  0.94  0.76  0.71  0.78
#> bio13 -0.21 -0.19  0.19 -0.55 -0.43  0.11 -0.53 -0.17 -0.22 -0.44  0.04  0.93  1.00  0.48  0.06  1.00  0.50  0.51  0.87
#> bio14 -0.54 -0.44 -0.17 -0.28 -0.67 -0.25 -0.43  0.27 -0.65 -0.64 -0.35  0.74  0.48  1.00 -0.64  0.50  0.99  0.90  0.27
#> bio15  0.71  0.64  0.67 -0.25  0.62  0.60  0.06 -0.45  0.68  0.57  0.71 -0.23  0.06 -0.64  1.00  0.05 -0.64 -0.56  0.21
#> bio16 -0.22 -0.19  0.19 -0.54 -0.44  0.11 -0.53 -0.17 -0.23 -0.45  0.04  0.94  1.00  0.50  0.05  1.00  0.52  0.52  0.88
#> bio17 -0.54 -0.46 -0.18 -0.29 -0.69 -0.25 -0.45  0.27 -0.65 -0.65 -0.35  0.76  0.50  0.99 -0.64  0.52  1.00  0.90  0.29
#> bio18 -0.57 -0.43 -0.16 -0.29 -0.71 -0.29 -0.44  0.38 -0.75 -0.68 -0.38  0.71  0.51  0.90 -0.56  0.52  0.90  1.00  0.18
#> bio19  0.02 -0.02  0.31 -0.50 -0.17  0.28 -0.42 -0.36  0.07 -0.19  0.23  0.78  0.87  0.27  0.21  0.88  0.29  0.18  1.00

R相关问答推荐

用derrr在R中查找组间的重复项

格点中指数、双曲和反双曲模型曲线的正确绘制

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

将非重复序列高效转换为长格式

在R中,如何将变量(A,B和C)拟合在同一列中,如A和B,以及A和C在同一面板中?

如何在分组条形图中移动相关列?

根据列A中的差异变异列,其中行由列B中的相对值标识

DEN扩展包中的RECT树形图出现异常行为

Ggplot2中geom_tile的动态zoom

如何根据数据帧中的值从该数据帧中提取值?

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

将工作目录子文件夹中的文件批量重命名为顺序

如何使用字符串从重复的模式中提取多个数字?

循环遍历多个变量,并将每个变量插入函数R

在ggplot2图表中通过端点连接点

子样本间系数检验的比较

识别部分重复行,其中一行为NA,其重复行为非NA

汇总数据:在跨越()all_of()Dynamic_list_of_vars=>;所选内容不能有缺失值的汇总()中出错

对计算变量所有唯一值的变量进行变异

如何使用ggsurvfit包更改风险表中的标签名称?