我正在使用 R 中的大型数据表,并尝试遍历整个表并根据单独列中前一行的值设置给定列中的行值。
我试图在一个有 200K 行的表上运行这个循环,它的移动非常缓慢。我怀疑我没有利用所有 data.table 的效率,但不知道我可以在哪里改进。
我的代码在下面。我的表是“DATA”,我的键是“x”和“y”列,我试图遍历所有行并将第 6 列中的行的值设置为 1 ,前提是该行在第 2 列中的值不是等于第 2 列中前一行的值。
setkey(DATA,x,y)
for (i in 2:nrow(DATA)) {
if (DATA[i,2]!=DATA[i-1,2]){
DATA[i, 6] = 1
}
}
同样,这有效,但对于大型表来说非常慢。任何帮助将不胜感激 - 谢谢!