我有两个表,我试图从一个查找值来添加到另一个值。目前我使用两个for循环,但它们运行缓慢。我是R新手,知道我应该避免循环来加快速度,但我无法弄清楚如何实现。查找没有循环
表1(几千行,37列):
type cat1 cat2 cat3 ... cat36 1 2 3 2 7 3 6 2 1 9 2 4 6 7 4 3 5 7 8 2 5 2 2 9 1 4 3 1 2 3 1 8 1 4 4 ...
表2(36行,5列):
type1 type2 type3 type4 type5 cat1 2 3 4 3 8 cat2 8 5 5 2 6 cat3 7 5 1 3 5 ... cat36 4 7 2 8 9
我想要通过添加适当的值来修改表1的每个值(在5种类型和36种类别中匹配)来自表2。下面是所期望的结果:
type cat1 cat2 cat3 ... cat36 1 4 11 9 11 3 10 7 2 11 2 7 11 12 11 3 9 12 9 4 5 10 8 14 10 4 6 3 5 11 1 10 9 11 8 ...
这是我的当前(慢)代码:
for (i in 1:36) {
for (j in 1:nrow(Table1)) {
Table1[j,i+1] = Table1[j,i+1] + Table2[i,Table1[j,1]]
}
}
虽然我用了两个环为清楚起见,我会注意到,我可能只是有一个循环通过表1的行,添加从表2将适当列各表1的行。 – 2012-01-27 18:04:41