提取矩阵的维数

时间:2016-11-11 20:57:24

标签: r matrix

我有这个矩阵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)

1 个答案:

答案 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
相关问题