更新:申し訳ありません...一部のテスト(n回実施されたもの、m回実施されたもの)に欠損値があることを指定する必要があり、merge
ドキュメントに基づいて回答に影響を与えると考えています:
all.x
論理的; TRUE の場合、追加の行が出力に追加されます。y に一致する行がない x の行ごとに 1 つずつ追加されます。これらの行は、通常は y の値で埋められる列に NA を持ちます。デフォルトは FALSE で、x と y の両方からのデータを含む行のみが出力に含まれます。
これらのオプションはどちらも必要ありません。つまり、一致する行/列の値だけを保持したくないし、一致しない行/列の交差値に NA を入力したくありません。
実験からのデータがあり、化学組成をあるファイルに保存し、別のファイルにテストを保存しました。これらをマージして、構成因子レベルでファセットされた箱ひげ図をプロットできるようにしたいのですが、その方法を理解するのに苦労しています。以下はデータの例です (上記に従って調整されています)。
set.seed(1)
df.ids <- data.frame(lot=c("A","B","C"),
var1=c(1,2,3),
var2=c(4,5,6))
df.testing <- data.frame(lot=c(rep("A",4), rep("B",4),rep("C",4)),
test1=rep(c(runif(3,min=1,max=5),NA),3),
test2=rep(c(runif(2,min=1,max=5),NA,NA),3),
test3=rep(runif(4,min=1,max=5),3))
私の実際のデータと同様に、ids データ フレームには因子レベルごとに 1 つの行がありますが、テスト データにはテストの複製ごとに複数の行があります。これらをマージして、各ロットの構成を埋めるにはどうすればよいですか? つまり、結果のデータ フレームは次のようになります。
| lot | test1 | test2 | test3 | var1 | var2 |
|-----+----------+----------+----------+------+------|
| A | 2.062035 | 4.632831 | 4.593559 | 1 | 4 |
| A | 2.488496 | 1.806728 | 4.778701 | 1 | 4 |
| A | 3.291413 | NA | 3.643191 | 1 | 4 |
| A | NA | NA | 3.516456 | 1 | 4 |
| B | 2.062035 | 4.632831 | 4.593559 | 2 | 5 |
| B | 2.488496 | 1.806728 | 4.778701 | 2 | 5 |
| B | 3.291413 | NA | 3.643191 | 2 | 5 |
| B | NA | NA | 3.516456 | 2 | 5 |
| C | 2.062035 | 4.632831 | 4.593559 | 3 | 6 |
| C | 2.488496 | 1.806728 | 4.778701 | 3 | 6 |
| C | 3.291413 | NA | 3.643191 | 3 | 6 |
| C | NA | NA | 3.516456 | 3 | 6 |
最後に、私がやろうとしているのは、一意のロット ID を照合しdf.ids
、各列の値を に複製することだけだと思いますdf.testing
。for()
方法がわかりません(まあ、ループでやろうと思ったのですが、もっと良い方法があるはずです)!