次のフレームワーク データセットがあります。
master <- data.frame (namest = c("A","B", "C","D", "E", "F"),
position =c( 0, 10, 20, 25, 30, 35))
master
namest position
1 A 0
2 B 10
3 C 20
4 D 25
5 E 30
6 F 35
これは、場所の名前と位置がある大きな地図 (ロード マップなど) です。2 番目の調査では、より小さなサブセットがあります (多数、ここでは 3 つだけ)。
subset1 <- data.frame (namest = c("I", "A", "ii", "iii", "B"),
position = c(0, 10, 12, 14, 20))
subset1
namest position
1 I 0
2 A 10
3 ii 12
4 iii 14
5 B 20
subset2 <- data.frame (namest = c("E", "vii", "F"), position = c(0, 3,5))
subset2
namest position
1 E 0
2 vii 3
3 F 5
subset3 <- data.frame (namest = c("D", "vi", "v", "C", "iv"),
position = c(0, 2, 3, 5, 8))
subset3
namest position
1 D 0
2 vi 2
3 v 3
4 C 5
5 iv 8
各サブセットには、master に共通する 2 つの名前があります。たとえば、subset3 の D と C です。
これらのサブセットを組み合わせて、より詳細なマスターを作成したいと考えています。新しい namest が新しいマップに配置されることを意味します。一部のサブセット (subset3 を参照) の順序がマスターと逆になっていることを確認してください。
したがって、期待される出力は次のとおりです。
subsetalign <- data.frame(subsett = c(rep ("A-B", nrow(subset1)),
rep("C-D", nrow(subset3)),
rep("E-F", nrow(subset2))), namest = c(c("I", "A", "ii", "iii", "B"),
rev (c("D", "vi", "v", "C", "iv")),c("E", "vii", "F")),
position = c(subset1$position, rev (subset3$position), subset2$position))
subsetalign
subsett namest position
1 A-B I 0
2 A-B A 10
3 A-B ii 12
4 A-B iii 14
5 A-B B 20
6 C-D iv 8
7 C-D C 5
8 C-D v 3
9 C-D vi 2
10 C-D D 0
11 E-F E 0
12 E-F vii 3
13 E-F F 5
出力プロセスは次のように視覚化できます (この時点では、説明をわかりやすくするために、そのような図を作成するつもりはありません)。
編集: 次の 2 つの理由により、単純に rbind ではありません。
(a) サブセットは、コマンド名がマスター ファイルでどのように配置されているかに基づいて順序付けられます。たとえば、サブセット 1 (AB) + サブセット 3 (CD) + サブセット 2 (EF) の場合、マスターでの順序は ABCDEF です。
(b) また、サブセットの順序がマスターと逆の場合は、逆にする必要があります。サブセット 3 では、namest の順序は「D」-「vi」-「v」-「C」-「iv」ですが、マスターでは D が C の後に来るため、この sustet 3 はバインドする前に反転する必要があります。