У меня есть две таблицы, и я пытаюсь найти значения из одного для добавления к значениям в другом. В настоящее время я использую два цикла, но они работают медленно. Я новичок в R и знаю, что мне следует избегать цикла, чтобы ускорить работу, но я не могу понять, как это сделать.Поиск без цикла
Table1 (несколько тысяч строк, 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 ...
table2 (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]]
}
}
Хотя я использовал две петли для ясности, отмечу, что я мог бы просто имел одну петлю через ряды Table1, добавив соответствующий столбец из Table2 к каждой строке Table1 , –