如何从SPSS中的矩阵中选择列或行的子集?
鉴于以下示例,我想计算一个包含前两列X的矩阵X2。
MATRIX.
COMPUTE
X = {1, 2, 2;
0, -1, 1;
1, 1, -2}.
* Compute new matrix X2 that contains the first two columns of X
MAGIC CODE ;)
END MATRIX.
SPSS中矩阵子集化操作的语法是什么?
答案 0 :(得分:2)
您可以对矩阵进行子集化,因此它只是COMPUTE XSub = X(:,1:2).
下面的完整示例。
MATRIX.
COMPUTE X = {1, 2, 2;
0, -1, 1;
1, 1, -2}.
COMPUTE XSub = X(:,1:2).
PRINT XSub.
END MATRIX.
对于评论中的附加问题,1:n
基本上SPSS理解为1 2 3 .... n
的行向量。您可以创建自己的矢量来对矩阵进行子集化,例如{1,3}
或{2,2}
或{3,1}
或其他。最后一个示例将在子集矩阵中首先返回第3列,第一列返回第二列。示例如下:
MATRIX.
COMPUTE X = {1, 2, 2;
0, -1, 1;
1, 1, -2}.
COMPUTE XSub = X(:,{3,1}).
PRINT XSub.
END MATRIX.
打印出来
Run MATRIX procedure:
XSUB
2 1
1 0
-2 1
------ END MATRIX -----
答案 1 :(得分:1)
MATRIX.
COMPUTE X = {1, 2, 3; 4, 5, 6; 7, 8, 9}.
COMPUTE Y=MAKE(NROW(X),2,0).
LOOP i=1 to NROW(Y).
LOOP j=1 to NCOL(Y).
COMPUTE Y(i,j)=X(i,j).
END LOOP.
END LOOP.
PRINT X.
PRINT Y.
END MATRIX.