根据R中的样本id对矩阵进行排序

根据R中的样本id对矩阵进行排序,r,sorting,R,Sorting,我已经设置了一个矩阵,我正试图按照样本id及其相关编号的顺序对其进行排序 我有来自V1-V26的混合顺序的样本id,我希望矩阵的顺序是V1-V26,而不是混合。如何按照样本id的第一列按升序对R中的矩阵进行排序 用第二个代码更新 r<-read.table("testbray.csv", header = TRUE, sep = ",", check.names = FALSE) i1 <- as.numeric(sub("\\D+", "", row.names(r))) j1 &

我已经设置了一个矩阵,我正试图按照样本id及其相关编号的顺序对其进行排序

我有来自V1-V26的混合顺序的样本id,我希望矩阵的顺序是V1-V26,而不是混合。如何按照样本id的第一列按升序对R中的矩阵进行排序

用第二个代码更新

r<-read.table("testbray.csv", header = TRUE, sep = ",", check.names = FALSE)
i1 <- as.numeric(sub("\\D+", "", row.names(r)))
j1 <- as.numeric(sub("\\D+", "", colnames(r)))
y<-r[order(i1), order(j1)]

>

 dput(head(r[, c(1, 3)]))
structure(list(structure(c(16L, 12L, 3L, 17L, 5L, 22L), .Label = c("V1", 
"V10", "V11", "V12", "V13", "V14", "V15", "V17", "V18", "V19", 
"V2", "V20", "V21", "V22", "V23", "V24", "V25", "V26", "V27", 
"V3", "V4", "V5", "V6", "V7", "V8", "V9"), class = "factor"), 
    V20 = c(0.592334495, 0, 0.893728223, 0.625048393, 0.587882307, 
    0.647502904)), row.names = c(NA, 6L), class = "data.frame")

r我们可以使用
gtools::mixedsort

m1[mixedsort(row.names(m1)), mixedsort(colnames(m1))]
或者另一个选项是使用
base R
,方法是用
sub
convert to
integer
和顺序删除“V”

i1 <- as.numeric(sub("\\D+", "", row.names(m1)))
j1 <- as.numeric(sub("\\D+", "", colnames(m1)))
m1[order(i1), order(j1)]

i1请使用
dput
添加数据,而不是作为屏幕截图。请阅读有关“我得到你的列名为
colnames(r)#[1]“20”
的信息以及如何给出答案,这不是你在
V1
V2
等中显示的方法。两种方法都成功地排序了行,但没有排序列。它将数字分配给列,并对这些数字进行排序,但不会对V1-V26进行排序。我想这可能与我如何导入表格有关?这是我的代码:r@twitney你能用小号的
dput
更新你的帖子吗example@twhitney您能演示数据的dput以获得正确的结构和预期的输出吗对不起,我误读了您的评论…不确定这是否是您所要求的for@twhitney基于您显示的结构,它的列名或行名中没有任何“V”