【发布时间】:2016-09-10 00:14:27
【问题描述】:
我有一个数据集,“数据”,其中每隔几行相邻的行都有相同的“id”,这是数据集中的一个参数。我有另一个数据集“otherData”,具有相同的 id 值,但每个 id 值只有一行。两个数据集中的 id 顺序相同。
我想将“newColumn”列从 otherData 复制到数据,并根据 id 值映射它。这是我目前拥有的:
sapply(otherData$id, function(id)
data$newColumn[data$id == id, ] <- otherData[otherData$id == id, ]$newColumn
)
但是,sapply 的速度慢得令人作呕,因为它会遍历每个唯一的 id 值,并且必须在 data.frame 中找到具有该值的每一行。
有更快的选择吗?我想也许我可以利用具有相同“id”值的所有行彼此相邻的事实。
【问题讨论】: