У меня есть следующий данныеНайти минимальное отклонение от вектора из матрицы возможных векторов
set.seed(11)
Data<-rbind(c(1:5),c(2:6))
Candidates <- matrix(1:25 + rnorm(25), ncol=5,
dimnames=list(NULL, paste0("x", 1:5)))
colnames(Data)<-colnames(Candidates)
Я хочу, чтобы вычесть каждую строку моих данных из каждой строки матрицы Кандидатов И возвращает минимальное абсолютное значение Поэтому для первой строки я хочу узнать наименьшую возможную ошибку.
sum(abs(Data[1,]-Candidates[1,]))
sum(abs(Data[1,]-Candidates[2,]))
sum(abs(Data[1,]-Candidates[3,]))
sum(abs(Data[1,]-Candidates[4,]))
sum(abs(Data[1,]-Candidates[5,]))
В данном случае это 38.15826. На данный момент мне не интересно узнать, какая строка кандидата приводит к наименьшему абсолютному отклонению, я просто хочу знать наименьшее абсолютное отклонение для каждой строки данных.
Тогда я хотел бы получить новый набор данных, который имеет мои исходные данные и наименьшее отклонение, например. строка один хотел бы это:
x1 x2 x3 x4 x5 MinDev
1 2 3 4 5 38.15826
Мой реальный кандидат Матрица является относительно небольшой, но мой реальный данных довольно велик, поэтому на данный момент я просто строить цикл, который
Err[i,]<- min(rbinds(
sum(abs(Data[i,]-Candidates[1,])),
sum(abs(Data[i,]-Candidates[2,]))...))
но я «Конечно, есть лучший, более автоматический способ сделать это, чтобы он мог вмещать большие матрицы данных и матрицы кандидатов разных размеров.
Любые идеи?
Сделать пример воспроизводимым с помощью 'set.seed' в самом начале. – Nishanth
Отредактированный оригинальный вопрос, я забыл определить семена. Извинения – Mercelo