Матрица расстояний в R - PullRequest
       6

Матрица расстояний в R

2 голосов
/ 03 августа 2011

Я должен создать матрицу расстояний, используя R. Мои данные находятся в файле Excel, который содержит 300 строк и 10 столбцов. Я должен создать матрицу расстояний на основе значений 9-го столбца. Например

   s s s s s
s  1
s  2 2
s  3 3 4
s  4 4 7 3
s  5 5 8 2 8

Как создать этот тип матрицы?

Ответы [ 2 ]

8 голосов
/ 03 августа 2011

Самый простой вариант, который я знаю, это сохранить лист Excel, содержащий данные, в виде файла CSV. Убедитесь, что только первая строка и столбец листа содержат имена образцов или переменных.

Затем прочитайте R, используя:

dat <- read.csv("path/to/my/file.csv")

, а затем используйте dist() в 9-м столбце для вычисления матрицы различий

dij <- dist(dat[, 9])

Если вам нужно что-то кроме евклидова расстояния, посмотрите параметры в ?dist, а если они не подходят, попробуйте функцию daisy() в рекомендованном пакете cluster или vegdist(). в пакете веганский или прокси пакет.

4 голосов
/ 03 августа 2011

Если ваши числа находятся в векторе с именем z, то dist(z) возвращает матрицу расстояний евклидовых (sqrt(dx^2+dy^2)) значений. См. help(dist) для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...