我有兩個資料框,這里只是第一個(名為 mydata2)的一小部分:

和我的第二個資料框(命名分數):

我希望第二個列的順序與第一個中的行的順序相同。
uj5u.com熱心網友回復:
dat1 <- data.frame(a=1:3)
rownames(dat1) <- c("AA","BB","CC")
dat1
# a
# AA 1
# BB 2
# CC 3
dat2 <- data.frame(ZZ=11:12, BB=21:22, CC=31:32, AA=41:42)
dat2
# ZZ BB CC AA
# 1 11 21 31 41
# 2 12 22 32 42
我們將用于match將列名與行名匹配:
ind <- match(colnames(dat2), rownames(dat1))
ind
# [1] NA 2 3 1
如果你想在開始時不匹配(如果存在),那么
dat2[, order(!is.na(ind), ind)]
# ZZ AA BB CC
# 1 11 41 21 31
# 2 12 42 22 32
別的
dat2[, order(is.na(ind), ind)]
# AA BB CC ZZ
# 1 41 21 31 11
# 2 42 22 32 12
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/343401.html
