我有以下矩阵:
专栏&行名称是城市名称,矩阵的每个点都是两个城市之间的距离(以英里为单位)。例如,如果我的观点是[SanFrancisco,Berkeley],那么距离是13.9。我试图找出一个给出城市向量的函数,以及城市之间的距离矩阵,该函数返回所提供城市之间的总距离。我真的不知道从哪里开始。
编辑:如果涉及多个城市(Berkeley - > SanFrancisco-> PaloAlto等),我认为你必须使用某种循环?它会重复循环吗?答案 0 :(得分:0)
如果这是你的矩阵:
matrix <- structure(c(0, 3, 5, 3.6, 0, 2.1, 6, 1.9, 0), .Dim = c(3L, 3L
), .Dimnames = list(c("Vienna", "Berlin", "Prague"), c("Vienna", "Berlin", "Prague")))
Vienna Berlin Prague
Vienna 0 3.6 6.0
Berlin 3 0.0 1.9
Prague 5 2.1 0.0
您可以使用基本子集执行以下操作:
matrix["Vienna","Berlin"]
你会得到
[1] 3.6
但是,如果您想要自定义功能,则可以执行以下操作:
#define function
getDist <- function(cityVector, matrix) {
dist <- 0
n <- length(cityVector) - 1
for(i in 1:n) {
dist <- dist + matrix[cityVector[i], cityVector[i+1]]
}
return(dist)
}