给定矩阵,
df <- read.table(text="
X1 X2 X3 X4 X5
1 2 3 2 1
2 3 4 4 3
3 4 4 6 2
4 5 5 5 4
2 3 3 3 6
5 6 2 8 4", header=T)
我想创建一个距离矩阵,其中包含每列每行之间的绝对平均差。例如,和之间的距离X1
应该X3
是= 1.67,因为:
abs(1 - 3) + abs(2-4) + abs(3-4) + abs(4-5) + abs(2-3) + abs(5-2) = 10 / 6 = 1.67
我尝试过以这种方式使用designdist()
vegan 包中的函数:
designdist(t(df), method = "abs(A-B)/6", terms = "minimum")
第 1 列和第 3 列的结果距离为 0.666。这个函数的问题是它把每一列中的所有值相加,然后减去它们。但是我需要将每行之间的绝对差异(单独,绝对)相加,然后将其除以 N。