У меня есть вектор из n баллов в произвольном порядке, и я хочу вычислить среднюю абсолютную разницу между любыми двумя баллами. Обратите внимание, что хотя я и не использую правильный термин со «средней абсолютной разницей», я не прошу среднего / медианного абсолютного отклонения (т. Е. Безумного), которое аналогично стандартному отклонению. Я хочу отклонений от самих оценок, а не от меры центральной тенденции.
Во-первых, я хочу вычислить каждую абсолютную разницу между любыми двумя баллами. С вектором из 2 баллов есть только одна абсолютная разница; с 3 баллами, есть 3 абсолютные различия; с 4 баллами существует 6 абсолютных отличий; общая формула - это n * (n-1) / 2 абсолютных разностей. Например, скажем, у меня есть вектор:
c(3,4,5,6)
Я могу рассчитать каждую абсолютную разницу вручную, взяв каждую оценку и вычтя ее из любой другой оценки, а затем взяв абсолютное значение результирующей разницы. Например:
|3-4| = 1
|3-5| = 2
|3-6| = 3
|4-5| = 1
|4-6| = 2
|5-6| = 1
Во-вторых, я хочу взять среднее абсолютных разниц. Например:
(1 + 2 + 3 + 1 + 2 + 1)/6 = 1.666666666666666
Кто-нибудь знает функцию R, которая может это сделать? Очевидно, что когда число n в векторе мало, можно создать руководство для цикла; но я хочу применить функцию к векторам с тысячами баллов.