R语言中,已知一个m行n列的数据框,每列的列名为字符串,如s1,s2,s3,s4...,如何根据列名求该列的索引?

Python013

R语言中,已知一个m行n列的数据框,每列的列名为字符串,如s1,s2,s3,s4...,如何根据列名求该列的索引?,第1张

% 使用 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(:)'

 由于没能完全理解题主的意思,题主可以根据我说的,按照reshape函数来解决问题

数据框DataFrame提出一列(假设名为OneColumn)之后,用DataFrame$OneColumn或者DataFrame[, "OneColumn"]或DataFrame[["OneColumn"]],在默认值drop=True情况下会自动退化为向量。如果用DataFrame["OneColumn"]则提取的为仅有OneColumn列的数据框,其实质仍为列表。

R语言的对象(Objects)主要包括向量、矩阵、数组、数据框和列表。

向量(vector)是R语言中最基本的数据类型,执行组合功能的函数c()可用来创建向量。

数据框(Data Frames)是一种特殊的列表,其中所用元素长度都相等,列表中的每个元素都可以看作一列,每个元素的长度可以看作行数。

1. paste 函数

paste(v1,v2,sep="")

拼接对象是向量

2. rbind(df1,df2) 行合并

cbind(df1,df2) 列合并

3. merge 按共有变量进行合并(匹配)

merge(x,y,by=intersect(names(x),names(y)),by.x=by, by.y=y, all =FALSE, all.x=FALSE,all.y=FALSE,...)