R学习笔记(一)数据结构

来源:互联网 发布:青海干部网络教育 编辑:程序博客网 时间:2024/06/11 11:17

1.向量
向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数c()可用来创建向量
这里写图片描述
第一行表示创建a向量,其中包含多个字符
第二行找到a向量中第3个字符
第四行找到a向量中第1,3,5个字符
第六行找到a向量中从第2到第6个字符
2. 矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数matrix()创建矩阵
mymatrix<-matrix(vector,nrow=a,ncol=b,byrow=TRUE/FALSE,dimnames=list(rnames,cnames)
vector包含矩阵的元素
nrow为a行,ncol为b列
byrow为TRUE表示按行填充,FALSE表示按列填充,不写此句,默认按列
dimnames包含了以字符向量表示的行名和列名
这里写图片描述
我们可以使用下标和方括号来选择矩阵中的行、 列或元素。 X[i,]指矩阵X中的第i行, X[,j]指第j列, X[i, j]指第i行第j 个元素。选择多行或多列时,下标i和j可为数值型向量
这里写图片描述
这里写图片描述
3.数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建
myarray<-array(vector,dimensions,dimnames)
vector包含数组中的数据
dimensions是一个数值型向量,给出各个维度下标的最大值
dimnames是可选的、各维度名称标签的列表
这里写图片描述
这里写图片描述
从数组中选取元素的方式与矩阵相同。上例中,元素z[1,2,3]为15
4. 数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据, 数据框的概念较矩阵来说更为一般
mydata<-data.frame(col1,col2,col3,…)
列向量col1、 col2、 col3等可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定
这里写图片描述
每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。
选取数据框中元素的方式有若干种。你可以使用前述(如矩阵中的)下标记号,亦可直接指定列名。
这里写图片描述
这里写图片描述
$用来选取一个给定数据框中的某个特定变量
(1) attach()、detach()和with()
attach()可将数据框添加到R的搜索路径,R遇到一个变量名将检查搜索路径中的数据框
detach()将数据框从搜索路径中移除
这里写图片描述
函数attach()和detach()最好在你分析一个单独的数据框,并且不太可能有多个同名对象时使用
上例也可使用with(),花括号{}之间的语句都针对数据框mtcars执行,这样就无需担心名称冲突。如果仅有一条语句(例如summary(mpg)),那么花括号{}可以省略
这里写图片描述
函数with()的局限性在于,赋值仅在此函数的括号内生效。
如果你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-)即可,它可将对象保存到with()之外的全局环境中。这一点可通过以下代码阐明:
这里写图片描述
(2) 实例标识符
在病例数据中,病人编号(patientID)用于区分数据集中不同的个体。在R中,实例标识符(case identifier)可通过数据框操作函数中的rowname选项指定
这里写图片描述
5.因子
名义型变量是没有顺序之分的类别变量;有序型变量表示一种顺序关系,而非数量关系。类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)
函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1…k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上
这里写图片描述
语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为1=Type1和2=Type2(具体赋值根据字母顺序而定)
这里写图片描述
要表示有序型变量,需要为函数factor()指定参数ordered=TRUE。语句status <- factor(status, ordered=TRUE)会将向量编码为(3, 2, 1, 3),并在内部将这些值关联为1=Excellent、 2=Improved以及3=Poor。对于字符型向量,因子的水平默认依字母顺序创建,故需指定参数ordered
这里写图片描述
6.列表
列表(list)是R的数据类型中最为复杂的一种。一般来说, 列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下
mylist<-list(object1,object2,object3,…)
也可为对象命名
mylist<-list(name1=object1,name2=object2,…)
这里写图片描述

原创粉丝点击