-1

私はこのようなリストを持っています

list1<- list(c(12,45,12,0,0),c(12,45,12,0,1),c(14,45,12,0,2),c(12,15,12,0,3),c(12,45,17,0,4))

Rでを使用して、このリストを反復処理したいと思います。ここでの目標は、リスト内のこれらのベクトルのforeachようなランダムなベクトルを比較することです。c(1,1,2,0,6)「比較」とは、これらのベクトル間のユークリッド距離を計算し、ランダムベクトルに最も近いものを見つける必要があることを意味します。

4

1 に答える 1

2

距離を計算する最も効率的な方法は、dist関数を使用して実現できます。

# a random vector
rvec  <- c(1,1,2,0,6)

# a list of coordinates
list1 <- list(c(12,45,12,0,0),
              c(12,45,12,0,1),
              c(14,45,12,0,2),
              c(12,15,12,0,3),
              c(12,45,17,0,4))

# calculate distances between the random vector and the list elements:
dist(rbind(rvec, t(matrix(unlist(list1), length(list1)))))[seq_along(list1)]

[1] 46.82948 46.71188 47.12749 20.63977 47.81213
于 2012-11-26T13:04:27.007 に答える