【发布时间】:2011-05-19 05:28:27
【问题描述】:
我是 R 新手,正在努力寻找更好的解决方案来有效地完成这个相当简单的任务。
我有一个 data.frame M 和 100,000 行(以及许多列,其中 2 列与此问题相关,我将其称为 M1、M2)。我还有另一个data.frame,其中包含大约10,000 个元素的列V1 对这项任务至关重要。我的任务是:
对于V1中的每一个元素,找出它在M2中出现的位置,并拉出对应的M1。我可以使用 for-loop 来做到这一点,而且速度非常慢!我习惯了 Matlab 和 Perl,这在 R 中是永远的!肯定有更好的办法。在完成这项任务时,我将不胜感激任何有价值的建议......
for (x in c(1:length(V$V1)) {
start[x] = M$M1[M$M2 == V$V1[x]]
}
只有 1 个元素会匹配,所以我可以使用逻辑语句直接获取起始向量中的元素。我怎样才能矢量化这个?
谢谢!
【问题讨论】:
标签: optimization r vector