我必须使用R创建距离矩阵。我的数据位于包含300行和10列的Excel文件中。我必须根据第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
如何创建这种类型的矩阵?
答案 0 :(得分:8)
我知道的最简单的选项是将包含数据的Excel工作表保存为CSV文件。确保只有工作表的第一行和第一列包含任何样本或变量名称。
然后使用:
读入R.dat <- read.csv("path/to/my/file.csv")
然后在第9列使用dist()
来计算相异矩阵
dij <- dist(dat[, 9])
如果您想要欧几里德距离以外的其他内容,请参阅?dist
中的选项,如果这些选项不合适,请尝试推荐套餐群集中的daisy()
功能,或<{>} {/ strong> vegan 包中的vegdist()
功能。
答案 1 :(得分:4)
如果您的数字位于名为z的向量中,则dist(z)
会返回欧几里得(sqrt(dx^2+dy^2)
)值的距离矩阵。有关详细信息,请参阅help(dist)
。