Tengo dos tablas, y estoy tratando de buscar valores de uno para agregar a valores en el otro. Actualmente estoy usando dos bucles pero funcionan lentamente. Soy nuevo en R y sé que debería evitar el bucle para acelerar las cosas, pero no puedo entender cómo.Búsqueda sin bucle
Tabla1 (varios miles de filas, 37 columnas):
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 ...
Tabla2 (36 filas, 5 columnas):
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
Quiero modificar cada valor en la Tabla 1 mediante la adición del valor apropiado (coincidencia entre los 5 tipos y 36 categorías) de la Tabla2. Aquí están los resultados deseados:
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 ...
Aquí está mi actual (lento) código:
for (i in 1:36) {
for (j in 1:nrow(Table1)) {
Table1[j,i+1] = Table1[j,i+1] + Table2[i,Table1[j,1]]
}
}
Aunque he utilizado dos bucles para mayor claridad, voy a señalar que podría tener apenas tenía un bucle a través de las filas de la Tabla 1, la adición de la columna apropiada de la Tabla 2 para cada fila Tabla 1 . –