こんにちは、私は R で同じ変数名を持つデータ フレームのリストを扱っています。リストの構造は次のとおりです。再現可能にするために 5 つの要素のみを含めますが、リストには 20 を超える要素を含めることができます。
list
$a1
ID G
00001 A
00002 A
00003 B
00004 C
00005 D
00006 A
$a2
ID G
00001 A
00002 A
00003 B
00004 C
00005 D
00006 A
00007 A
$a3
ID G
00001 A
00002 A
00003 B
00004 C
00005 D
00006 A
00007 A
00008 B
$a4
ID G
00001 A
00002 A
00003 B
00004 C
00005 D
00006 A
00007 A
00008 B
00009 C
$a5
ID G
00001 A
00002 A
00003 B
00004 C
00005 D
00006 A
00007 A
00008 B
00009 C
00010 D
要素の名前はa1
、a2
、a3
、a4
およびa5
です。マージされた変数間の違いを確立できないため、すべての要素をマージすると問題が発生します。たとえば、list
次のコードに適用してマージします
Merged=Reduce(function(x, y) merge(x, y,all.x=T,by=1),list)
。Merged
ID G.x G.y G.x G.y G
00001 A A A A A
00002 A A A A A
00003 B B B B B
00004 C C C C C
00005 D D D D D
00006 A A A A A
そして、この警告:
Warnings:
1: In merge.data.frame(x, y, all.x = T, by = 1) :
column names ‘G.x’, ‘G.y’ are duplicated in the result
2: In merge.data.frame(x, y, all.x = T, by = 1) :
column names ‘G.x’, ‘G.y’ are duplicated in the result
マージは問題ありませんが、名前が同じであるため、マージされた変数を区別できません。たとえば、最初g.x
はグループからa1
、最初g.y
はグループからa2
、2番目g.x
はグループからa3
、2番目g.y
はグループからa4
、そしてg
グループからa5
です。g
それが来る要素を考慮して違いを出したいのですが、次のような構造が欲しいです:
ID G.1 G.2 G.3 G.4 G.5
00001 A A A A A
00002 A A A A A
00003 B B B B B
00004 C C C C C
00005 D D D D D
00006 A A A A A
それぞれのデータフレームと明確に区別できる場所、G
または少なくともこの違いを生むことができるものが欲しいです。ご協力いただきありがとうございます。