Я имею дело с фреймом данных с более чем 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]]
}
Как я уже сказал, это ужасно медленно. Есть идеи для более разумного способа?