Я хотел бы вычислить расстояние между каждым элементом в одном векторе и каждый элементом в другом векторе в самых быстрых из возможных путей в Р. небольшого примера является:Кикест расстояние вычисления между двумя большими векторами в R
distf<-function(a,b) abs(a-b)
x<-c(1,2,3)
y<-c(1,1,1)
result<-outer(x,y, distf)
Проблема в том, что мои x и y теперь имеют длину 30 000 каждый, а R сбой при попытке сделать это вычисление. И это делается только один раз, но я должен повторить процесс 1000 раз в симуляционном исследовании. Есть ли более быстрые функции, чтобы иметь возможность достичь этого?
В конечном итоге мне необходимо определить, какое из этих расстояний меньше фиксированного числа/суппорта. В конце концов, я буду изучать многие такие фиксированные суппорты, поэтому мне нужно сохранить все эти расстояния, особенно если вычисления настолько требовательны. Функция, называемая суппортом в пакете optmatch R, выполняет этот процесс напрямую, но также не может обрабатывать такие большие вычисления.
вам нужно все 45 миллионов (давать или принимать) попарные расстояния в конце, или же вам нужны другие расчеты основаны на тех, расстояния? –
Мне нужно определить, какое из этих расстояний меньше, чем заданное число/суппорт, заменяя единицы, меньшие определенного расстояния на 1, и отдыхайте с 0. Мне потребуются все расстояния, поскольку я хочу изучить различные суппорты в конце концов. Я попробовал функцию, называемую суппорт в пакете optmatch, который выполняет этот процесс напрямую, но он не может справиться с таким большим вычислением. – JennyP
Эта информация, вероятно, должна быть в вашем вопросе. –