更新:抱歉...我应该指定某些测试缺少值(进行了 n 次,其他进行了 m 次),我认为这会影响基于merge
文档的答案:
all.x
合乎逻辑的;如果为 TRUE,那么额外的行将被添加到输出中,x 中的每一行在 y 中没有匹配的行。这些行将在那些通常用来自 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 数据框每个因子级别有一行,但测试数据对于每个测试重复都有多个。我如何合并这些以便为每个批次填写作品?换句话说,我的结果数据框将如下所示:
| 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()
循环来做,但我相信有更好的方法)!