我有这个矩阵Q:
[,1] [,2] [,3] [,4]
[1,] 0.77325281 0.04054297 0.5 0.3878613
[2,] 0.01478692 -0.61477862 0.5 -0.6097775
[3,] -0.60774649 -0.19012961 0.5 0.5869369
[4,] -0.18029324 0.76436526 0.5 -0.3650207
我试图用以下方法提取此矩阵的前两列:
Q[,c(1,2)]
然后我收到此错误:
Error in Q[, c(1, 2)] : incorrect number of dimensions
任何人都可以告诉我为什么会出现此错误以及如何获取前两列? 我如何计算Q:
test <- matrix(c(0, 4.05, 8.25, 5.57, 4.05, 0, 2.54, 2.69, 8.25, 2.54, 0, 2.11, 5.57, 2.69, 2.11, 0), nrow = 4, ncol = 4)
# matrix of squared dissimilarities
test2 <- matrix(c(test^2), nrow = 4, ncol = 4)
# double centering and multiplied
n=4
I=diag(n)
J=matrix(1,n,n)
C=I-J/n
B <- ((-.5)*C%*%test2%*%C)
B # double centered matrix
# eigenvalue decomposition
Q = eigen(B)
答案 0 :(得分:1)
编辑
如果你看一下eigen
返回的对象的结构,你会看到它是一个长度为2的列表
str(Q)
# List of 2
# $ values : num [1:4] 3.57e+01 3.27 -1.95e-14 -5.57
# $ vectors: num [1:4, 1:4] 0.7733 0.0148 -0.6077 -0.1803 0.0405 ...
您可以使用Q$vectors
?eigen
所以对你的问题使用
Q$vectors[, 1:2]
# [,1] [,2]
# [1,] 0.77325281 0.04054297
# [2,] 0.01478692 -0.61477862
# [3,] -0.60774649 -0.19012961
# [4,] -0.18029324 0.76436526