我处理的数据框超过500,000次观察,我第一次处理代码优化问题。我有一个非常简单的问题就是按时杀死我,并且正在寻找更快的解决方案。
我的数据框" d"有一个观察数字的列,它只是从1:nrow(d)开始。由于这里不重要的原因,观察需要以特定方式重新编号。我有另一个数据框,名为" id",第1列中的观察1的编号错误,第2列中的编号正确。这些列的名称为"错误"和"对"分别。
我尝试重新编号的方式是循环:
for(i in 1:nrow(d)){
d$obs[i] <- id$right[id$wrong==d$obs[i]]
}
像我说的那样,这非常慢。任何更聪明的想法?
答案 0 :(得分:0)
这会更快:
d$obs <- id$right[match(d$obs,id$wrong)]