R,根据 ID 使用另一个矩阵更新矩阵



我想合并两个矩阵(或更新一个矩阵),其中包含ID、坐标(x,y)和年份。假设一个矩阵来自2011年,另一个来自2012年。

2011年)

ID       x       y    year
1   5000001 5000000   11
2   5000002 5000000   11
3   5000003 5000000   11
4   5000004 5000000   11

2012年)

ID       x       y    year
3   5000003 5000001   12
4   5000004 5000001   12
5   5000005 5000000   12
6   5000006 5000000   12
7   5000007 5000000   12

较新的坐标应始终替换较旧的坐标。因此,在示例中,应更新ID 3和4的坐标,并将ID 5-7添加/合并到矩阵中。a)替换旧坐标,b)在矩阵中添加新坐标,最有效的方法是什么?

到目前为止,我已经为每年制作了包含唯一ID(v1,v2)的向量,并根据这些向量获得了不在最新数据中的ID(->v3)。

真正的问题是,搜索v3 ID向量并将这些ID的坐标值添加到最近的数据矩阵(2012)中的正确循环或if语句是什么?原谅我,我还不太擅长这些。

我希望这已经足够清楚了。

如果你的矩阵被称为m2011和m2012,听起来你只想把m2011中那些在m2012中没有ID的行添加到m2012中。对吧?

所以只有

newmatrix <- rbind(m2012, 
    matrix(m2011[!(m2011[, "ID"] %in% m2012[, "ID"])], ncol = ncol(m2011)))
newmatrix[, "year"] <- 12

应该起作用。

(如果要按ID排序,请选择newmatrix <- newmatrix[order(newmatrix[, "ID"]), ]

相关内容

  • 没有找到相关文章

最新更新