learning R with swirl- Matrices and Data Frames(矩阵和数据帧)

来源:互联网 发布:sql联合主键 编辑:程序博客网 时间:2024/06/05 14:35

   矩阵和数据帧是用来存储表格的数据,矩阵只能够包含一种数据类型的数据,而数据帧能够涵盖许多不同种数据类型的数据。

   我们可以用dim()函数来了解向量的维数,用length()来了解向量的长度。dim()函数允许你去得到或设置R对象的维数属性。例如,我们设置一个向量my_vector包含1到20个数,利用dim()函数探知它的维数,得到的结果是NULL,说明向量没有维数属性。现在我们把值c(4,5)添加到维数属性中,表示将其中的向量表示为4行5列,如下图所示:则得到的结果是:另外一种看到结果的方法是使用attribute()函数,其结果为:

     当我们处理2维至多维对象时,则第一个数字代表行,第二个数字代表列。因此此时它不再是一个向量,而是一个矩阵。

我们可以使用class()函数来验证它是否是矩阵。矩阵是一种带有维数属性的原子向量,我们可以使用matrix()函数来创建矩阵。结果如图所示:


那么如何在已有的矩阵上增加一列呢?我们首先需要创造需要增加的一组向量这里要注意要用双引号表示是字符串向量。然后使用cbind()函数去连接每列:我们看上图可以发现,由于字符向量的加入使得每个数字向量也加上了双引号,变成了字符,这是因为矩阵只能包含一种数据类型,这叫做“隐式强制”因为它自动发生了。因此我们需要使用数据帧的形式。其输入语言如下:此时输出的结果是:此时,data.frame()函数接受任何数量的参数,然后返回一个data.frame的对象,它包含原乡的所有数据。

此时我们有六列,需要为每列创造一个名字,首先创造一个符号向量,然后使用colname()函数来添加,可以看到,最后的输出是这样的: