R simple merge给出错误:'by'必须指定唯一有效的列

时间:2018-02-01 16:19:40

标签: r merge

我想基于索引列将从引用表中查找的值添加到数据表,但是我得到错误:“'by'必须指定唯一有效的列”。很抱歉,如果这是重复,但我没有成功应用相关问题的建议答案。

在下面的示例中,查找表包含每个“BH”的pH值,我想将此值添加到我的主数据框“df1”,其中df1 $ Habitat == LookUp $ BH。

df1 = data.frame(MySites=c(1,2,3),Habitat=c(11,12,13))
LookUp = data.frame(BH=c(8,10,11,12,13,15),pH=c(4.8,5.2,4.1,3.8,5.6,4.5))
merge(x=df1,y=LookUp,by.x='df1$Habitat',by.y='LookUp$BH',all=TRUE)

这给出了: fix.by(by.x,x)出错:'by'必须指定唯一有效的列

这看起来很简单,我必须犯一个明显的错误。非常感谢能够指出它是什么的人。

1 个答案:

答案 0 :(得分:0)

你做对了,但是你想的太多了。删除dataset$by.x语句中的by.y

merge(x=df1,y=LookUp,by.x='Habitat',by.y='BH',all=TRUE)