Вот официальный вопрос:
"Напишите функцию R, которая вычисляет матрицу расстояний для набора точек. Ваша функция должна принимать в качестве аргументов два вектора пространственных координат X и Y любой длины, гдеXi и Yi - пространственные координаты i-й точки. Ваша функция должна вычислять евклидово расстояние по умолчанию, но должно позволять пользователям выбирать расстояние в Манхэттене или расстояние Чебышева. Продемонстрируйте свою функцию, рассчитав матрицу расстояний для указанного ниже набора точек.для каждой из трех мер расстояния (евклидова, манхэттенская, чебышевская) и включая матрицы расстояний в ответ doc / PDF. Не используйте функцию R dist () в своем решении. "
Теперь воткод, который у меня есть (на данный момент).Любой совет будет принята с благодарностью:
P = c(-5,-3,0,5,3,7)
Q = c(11,8,12,13,16,19)
StupidFunction = function(x,y,method) {
distmatrix = matrix(data=NA, nrow=length(x), ncol=length(x))
for(i in 1:nrow(distmatrix)){
for(j in 1:ncol(distmatrix)){
if(method == 1){
return(sqrt(P[i] - P[i+1]^2 + (Q[i] - Q[i+1]^2))
}
else if(method == 2){
## Insert Manhattan Equation
}
else if(method == 3){
## Insert Chebyshev equation
}
}
}
}