と列名の部分一致に基づいて列を並べ替え:R:私はこの(終わりにdputを含む)のように見えるように簡略化することができるデータフレーム有する行名
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
Iドンで述べた変更を行ってください列を配置することを使用して列名のインデックスを検索することができますそれが何か変わると思っていたのですが、行名はFAの代わりにF1Aのようなものでしたが、それは列名にも当てはまります。 W3_F1A_22、その部分はまだ一致します!私が混乱を引き起こした場合はごめんなさい。 – arielle
投稿を更新しました – akrun