一、R中的包
1、定义
包:是R函数、数据、预编译代码以一种定义完善的格式组成的集合。
库(library):计算机上存储包的目录 。
显示库所在的位置
.libPaths()
显示库中有哪些包:
library()
查询哪些包已加载并可使用:
search()
2、包的安装与载入
安装vcd包
install.packages("vcd")
载入vcd包
library(vcd)
更新已经安装的包
update.packages()
注意:一个包仅需要安装一次,但每次使用时需重新载入;在一个会话中,包只需载入一次。
输出某个包的简短描述以及包中的函数名称和数据集名称的列表:
help(package="package_name")
查看函数或数据集的更多细节
help()
3、显示包中的数据集
显示vcd包中数据集Arthritis的内容
Arthritis
运行数据集Arthritis自带的示例
example(Arthritis)
退出
q()
二、创建数据集
1、数据集
由数据构成的一个矩形数组,行表示观测,列表示变量。
R可以处理的数据类型(模式)包括数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)
2、数据结构
R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。
2.1向量
向量:用于存储数值型、字符型或逻辑型数据的一维数组。
向量创建函数:c()
a <- c(1, 2, 5, 3, 6, -2, 4)
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)
函数解释:a是数值型向量,b是字符型向量,c是逻辑型向量。
向量访问函数:a[c(n, m)]
用于访问向量a中的第n个和第m个元素,如下例所示:
注意:标量是只含一个元素的向量,用于保存常量。例如
f <- 3
g <- "US"
h <- TRUE
2.2矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型) 。
矩阵创建函数:matrix():
myymatrix <- matrix(vector, nrow=number_of_rows,
ncol=number_of_columns, byrow=logical_value,
dimnames=list( char_vector_rownames, char_vector_colnames))
函数解释:
vector——矩阵的包含的元素
nrow和ncol——指定行和列的维数
dimnames——可选的、以字符型向量表示的行名和列名。
byrow——表明矩阵应当按行填(byrow=TRUE)还是按列填充
(byrow=FALSE) ,默认情况下按列填充。
例1:创建一个5×4的矩阵
2.3 数组
数组(array)与矩阵类似,但是维度可以大于2。
数组创建函数:array,形式如下
myarray <- array(vector, dimensions, dimnames)
函数解释:
vector——数组中包含的数据
dimensions——一个数值型向量,给出了各个维度下标的最大值
dimnames——是可选的、各维度名称标签的列表。
2.4 数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更为一般。它与你通常在SAS、SPSS和Stata中看到的数据集类似。数据框将是你在R中最常处理的数据结构。
数据框创建函数:
data.frame(): mydata <- data.frame(col1, col2, col3,...)
函数解释:
col1、col2、col3等可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定。
2.5 因子
变量可归结为名义型、有序型或连续型变量。
【1】名义型变量是没有顺序之分的类别变量。
【2】有序型变量表示一种顺序关系,而非数量关系。病情Status(poor、improved、excellent)是顺序型变量的一个上佳示例。
【3】连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和量。年龄Age就是一个连续型变量。
【因子】:类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。因子在R中非常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。
2.6 列表
列表(list)是R的数据类型中最为复杂的一种。
一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。
例如,某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。
列表创建函数list():
mylist <- list(object1, object2, ...)
还可以为列表中的对象命名:
mylist <- list(name1=object1, name2=object2, ...)
3、数据的输入
3.1 使用键盘输入数据
【1】用R内置的文本编辑器输入数据
a.创建一个空数据框(或矩阵),其中变量名和变量的模式需与理想中的最终数据集一致
b.针对这个数据对象调用文本编辑器,输入你的数据,并将结果保存回此数据对象中。
例:创建一个名为mydata的数据框,它含有三个变量:age(数值型)、gender(字符型)和weight(数值型)。然后调用文本编辑器,键入数据,最后保存结果。
> mydata <- data.frame(age=numeric(0),gender=character(0), weight=numeric(0))
> mydata <- edit(mydata)
【2】直接在程序中嵌入数据集
> mydatatxt <- "age gender weight 25 m 166 30 f 115 18 f 120"
> mydata <- read.table(header=TRUE, text=mydatatxt)
3.2 从带分隔符的文本文件导入数据
从带分隔符的文本文件中导入数据使用的函数:read.table(),其语法如下:
mydataframe <- read.table(file, options)
函数解释:
此函数可读入一个表格格式的文件并将其保存为一个数据框。表格的每一行分别出现在文件中每一行。
file——一个带分隔符的ASCII文本文件(文档路径)
options——控制如何处理数据的选项。
表2-2列出了常见的选项。
【例】:在D盘新建一个txt文档,输入数据(注意最后一行需要换行),更改后缀名为csv(转换为逗号分隔符文件)。用read.table()函数导入数据:
> mydataframe <- read.table("D:/test.csv")
3.3 导入 Excel数据
读取一个Excel文件的最好方式,就是在Excel中将其导出为一个逗号分隔文件(csv) ,并使用前文描述的方式将其导入R中。