我有可以簡化爲如下所示的數據幀的列名的部分匹配進行排序的列(包括在最後的dput):以R:基於與行名稱
T2_KL_21 A1_LC_11 W3_FA_22 RR_BI_12 PL_EW_12 RT_LC_22 YU_BI_21
FA 1 2 3 4 5 6 7
BI 1 2 3 4 5 6 7
KL 1 2 3 4 5 6 7
EW 1 2 3 4 5 6 7
LC 1 2 3 4 5 6 7
我想對列進行排序,以便它們遵循行名稱的順序(基於部分匹配)。然後,它應該是這樣的:
W3_FA_22 RR_BI_12 YU_BI_21 T2_KL_21 PL_EW_12 A1_LC_11 RT_LC_22
FA 3 4 7 1 5 2 6
BI 3 4 7 1 5 2 6
KL 3 4 7 1 5 2 6
EW 3 4 7 1 5 2 6
LC 3 4 7 1 5 2 6
如果不止一個列名中包含的行名的字符串,它們應該保持並排,但順序並不重要。
我已經過濾了列,以便它們都包含行名稱中的匹配項。
這裏是數據幀的dput:
structure(list(T2_KL_21 = c(1L, 1L, 1L, 1L, 1L), A1_LC_11 = c(2L,
2L, 2L, 2L, 2L), W3_FA_22 = c(3L, 3L, 3L, 3L, 3L), RR_BI_12 = c(4L,
4L, 4L, 4L, 4L), PL_EW_12 = c(5L, 5L, 5L, 5L, 5L), RT_LC_22 = c(6L,
6L, 6L, 6L, 6L), YU_BI_21 = c(7L, 7L, 7L, 7L, 7L)), .Names = c("T2_KL_21",
"A1_LC_11", "W3_FA_22", "RR_BI_12", "PL_EW_12", "RT_LC_22", "YU_BI_21"
), class = "data.frame", row.names = c("FA", "BI", "KL", "EW",
"LC"))
我已經使用pmatch,grep和匹配嘗試過,沒有成功。
任何意見將不勝感激!由於
請您在留言 – akrun
我不提到的更改列名的索引我認爲這不會改變任何事情,我的意思是,行名可以是例如F1A而不是FA,但是對於列名也是如此,所以例如W3_F1A_22,那部分仍然會匹配!對不起,如果我造成任何混淆 – arielle
好吧,我更新了帖子 – akrun