我有一个数据集“data”,其中每隔几个相邻的行都有相同的“id”,即数据集中的参数。我有另一个数据集“otherData”,具有相同的id值,但每个id值只有一行。两个数据集中id的顺序相同。
我想将“newColumn”列从otherData复制到数据,并根据id值进行映射。这就是我目前所拥有的:
ifdef
然而,sapply是令人厌恶的缓慢,因为它迭代每个唯一的id值,并且必须在data.frame中找到具有该值的每一行。
有更快的选择吗?我想也许我可以利用这样一个事实:所有具有相同“id”值的行彼此相邻。
答案 0 :(得分:1)
只需合并两个数据框,但过滤otherData
中的列以加入 id 键和 newColumn :
newData <- merge(data, otherData[c("id", "newColumn")], by=c("id"))