根据另一列的值复制列的值

时间:2016-09-10 00:14:28

标签: r dataframe apply sapply

我有一个数据集“data”,其中每隔几个相邻的行都有相同的“id”,即数据集中的参数。我有另一个数据集“otherData”,具有相同的id值,但每个id值只有一行。两个数据集中id的顺序相同。

我想将“newColumn”列从otherData复制到数据,并根据id值进行映射。这就是我目前所拥有的:

ifdef

然而,sapply是令人厌恶的缓慢,因为它迭代每个唯一的id值,并且必须在data.frame中找到具有该值的每一行。

有更快的选择吗?我想也许我可以利用这样一个事实:所有具有相同“id”值的行彼此相邻。

1 个答案:

答案 0 :(得分:1)

只需合并两个数据框,但过滤otherData中的列以加入 id 键和 newColumn

newData <- merge(data, otherData[c("id", "newColumn")], by=c("id"))