我以为我能够自己使用R矩阵进行以下计算,但我错了。基于下面矩阵的更大版本,我想计算以下公式
结果是矩阵行之间的平方差异除以列的方差,最终除以9,即矩阵列的nr。该计算的结果将是矩阵行之间的加权差异的矩形矩阵。
structure(c(4.36, 4.44, 4.04, 4.49, 4.09, 4.46, 3.81, 4.44, 3.4,
3.09, 3.31, 3.7, 4.28, 4.62, 4.2, 4.05, 4.28, 3.72, 3.66, 4.49,
4.17, 4.85, 5.18, 4.26, 4.29, 4.3, 3.83, 4.38, 4.74, 4.95, 5.33,
4.82, 4.39, 5.16, 3.6, 4.58), .Dim = c(4L, 9L), .Dimnames = list(
c("Australia", "Austria", "Brazil", "Canada"), c("Performance.Orientation",
"Future.Orientation", "Gender.Egalitarianism", "Assertiveness",
"Humane.orientation", "in.group.collectivism", "institutional.collectivism",
"power.concentration.decentralization..power.distance.",
"uncertainty.avoidance")))
我真的很感激我能得到的任何帮助,因为我不知道如何解决这个问题。
非常感谢提前!
答案 0 :(得分:2)
您可以在此处使用dist
功能。首先将每列除以其标准偏差,以进行所需的缩放。
mat2<-apply(mat,2,function(x)x/sd(x))
x<-dist(mat2)^2/9
x
# Australia Austria Brazil
# Austria 1.2201838730
# Brazil 2.2438097238 2.6753385616
# Canada 0.5118006068 1.9591707783 3.3896964564
恢复普通矩阵:
as.matrix(x)
# Australia Austria Brazil Canada
# Australia 0.0000000000 1.220183873 2.243809724 0.5118006068
# Austria 1.2201838730 0.000000000 2.675338562 1.9591707783
# Brazil 2.2438097238 2.675338562 0.000000000 3.3896964564
# Canada 0.5118006068 1.959170778 3.389696456 0.0000000000