如上所述,R语言中,已知一个m行n列的数据框,每列的列名为字符串,如s1,s2,s3,s4...,如何根据列名求该列的索引值(即求其位于第几列)?
% 使用 reshape(X ,m,n)函数
% 先了解一下reshape的基本用法
% 简而言之就是将矩阵X—>m*n的新矩阵
% 例如:将 3*4的A矩阵—>2*6的B矩阵
A =[1 4 7 10
2 5 8 11
3 6 9 12];
B = reshape(A,2,6);
% 等价于 B = reshape(A(:),2,6)
% 等价于 B = reshape(A(:),2,[])
% 上面运行结果为
B =[ 1 3 5 7 9 11
2 4 6 8 10 12];
% 分析:
% 因为 MATLAB会将A转换成A(:)
% 按列输出 A(:)=[1,2,3,4,5,6,7,8,9,10,11,12];
% 对B,注意B是2行6列,同样MATLAB会按列输入
% B =[ 1 3 . . . 11
% 2 . . . 10 12];
% 你说的意思,是不是矩阵A的每一列,按列元素拍在一行?
% 第一种方法:
C = reshape(A,1,[]);
% 第二种方法:
C=A(:)';