R语言总结分析
- 格式:docx
- 大小:50.08 KB
- 文档页数:20
Lec00## 八、关于Markdown语言的简洁说明1. 一个#表示一级标题,二个#表示二级标题,依次类推;2. 空一段表示断行,而不是简单的敲一个回车表示断行;3. *斜体* (一对星号)表示斜体,**加粗** (一对双星号)表示加粗;4. Markdown语言兼容Latex语言。
可处理数学公式Lec01## 1 数据的基本形式所有R处理的内容都叫对象(object)。
进行统计分析时,我们的对象自然就是数据(data)。
在R中,数据的基本格式分为以下5种:标量(scalar),向量(vectors),矩阵(matrices),数据框(data frames),因子(factors),及列表(lists)。
●所谓**向量**,就是一维的数值型、字符型或逻辑型数据的一维数组a <- c(1, 2, 3, 4, -2, -5, 6) # 数值型,其中c表示concatenate(连结,串联),c()称为combine function, <-表示赋值a # 显示向量ab <- c("one", "two", "three") # 字符型,需要使用“”c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) # 逻辑型d <- c(1:5) # :表示产生一个系列,元素默认按列填充●矩阵是一个二维数组,但要求其中的每个元素具有相同的模式(同为数值型、字符型或逻辑型)注意:每个元素的数据格式必需相同.y <- matrix(1:20, nrow=4, ncol=5) #定义4行5列y[1,] ; y[,2] ; y[1,2] ; y[1,c(2,3)] ; y[c(2,3),2] # 显示矩阵y内的不同元素#### 定义名为matrix1的2×2矩阵,定义行列名,按行填充cells <- c(1,-2,3,-4) ; rnames <- c("R1", "R2") ; cnames <- c("C1", "C2")matrix1<- matrix(cells, nrow=2, ncol=2, byrow=TRUE,dimnames=list(rnames, cnames))●数组(Array):三维或高维数据。
数组与矩阵类似,但维度高于2维。
array()函数的格式为: _array(vector, dimensions, dimnames)_ ,其中* vector表示向量,* dimensions表示每个维度下的向量“长度”(元素个数),* dimnames表示维度名。
dim1 <- c("A1", "A2") ; dim2 <- c("B1", "B2", "B3") ; dim3 <- c("C1", "C2", "C3", "C4")z <- array(1:24, c(2, 3, 4), dimnames=list(dim1, dim2, dim3)) # c(2, 3, 4)中的数字,表示dim1, dim2, dim3的长度●数据框(dataframe):包含不同类型数据的数据。
数据框的数据形式,就是常见的excel,spss,stata中的数据表单形式,它可以用来同时储存多种不同模式的数据。
数据框函数:*data.frame() function* ,其格式如下:*mydata <- data.frame(col1, col2, col3,…)*其中,col1, col2, col3, …是任意类型的列向量名(需提前定义)。
patientID <- c(1, 2, 3, 4) # 数值型向量; age <- c(25, 34, 28, 52) # 数值型向量; diabetes <- c("Type1", "Type2", "Type1", "Type1") # 字符型; status <- c("Poor", "Improved", "Excellent", "Poor") # 字符型patientdata <- data.frame(patientID, age, diabetes, status,s=patientID) # 以上述向量,建立数据框上述命令中,s=patientID为指定“实例标识符”(case identifier)。
设定此选项后,使用s(patientdata)命令,就可以以patientID为标记输出各个体的编号(ID)。
#### 观测与变量patientdata[1:2] # 显示数据框中的第1至2列(第1至2个变量)patientdata[2,4] # 显示第2行第4列的数据patientdata[c("diabetes", "status")] # 显示数据框中的指定列(变量)patientdata$age # “$”符号表示使用数据框中的某一变量,结果以行方式呈现。
一般地,“A$x”表示“数据据A中的变量x”.#### 绑定数据框每次使用数据框时,都使用“$”的方式,显得太过麻烦。
为此,可事先绑定某一数据,此后即使省略这一符号的方式使用数据框中的变量,待分析完这一数据框后再解除绑定。
命令:attach, detachattach(mtcars) # 绑定数据mtcars,该数据为R自带数据str(patientdata) # str()函数用于给出数据数据对象的信息summary(mpg) # 提供mpg变量的五数概要(Five number summary) 即最小值(Min)、第1四位数(1st Quartile)、中位数(Median)、第3四分位数(3rd Quartile)和最大值(Max)。
plot(mpg, disp) # 绘制mpg, disp两个变量的二维散点图detach(mtcars) # 解除绑定attach命令的缺陷在于,如果同时使用了不同的数据框,或者变量的命名有重复,则会出现错误。
为避免这一不足,可使用with()命令进行数据框绑定。
with( mtcars, {summary(mpg, disp, wt)plot(mpg, disp)plot(mpg, wt)})只要保证输入的命令在with()函数内,则不论前面是否有定义重名的变量,均可以只针对with()内的数据框进行处理。
●因子(factor)在R中,定类数据(nominal data)和定序数据(ordinal data)称为因子。
R中使用factor()函数储存因子型数据。
diabetes <- c("Type1", "Type2", "Type1", "Type1") # 定义定类向量diabetesdiabetes <- factor(diabetes) # 将向量diabetes储存为因子型数据,默认按按字母序进行分类status <- c("Poor", "Improved", "Excellent", "Poor")status <- factor(status, ordered=TRUE) # 按字母序将定序向量status定义为因子型数据,默认按字母序进行从低至高的排序,并用1、2、3……等正整数形式储存。
status <- factor(status, order=TRUE,levels=c( "Poor", "Improved","Excellent")) # 使用levels()命令,指定向量的从低至高次序,并用1、2、3……等正整数形式储存。
或者:status <- factor(status, order=TRUE,levels=c( "Poor", "Improved","Excellent")) # 使用levels()命令,指定向量的从低至高次序,并用1、2、3……等正整数形式储存。
●列表(List):复杂的数据。
列表(List)是R中最复杂的数据结构,它是一系列数据对象的组合体,可将不同类型的数据对象置于同一数据名之下。
其函数为list(),格式如右:mylist <- list(object1, object2, …)g <- "My First List" ; h <- c(25, 26, 18, 39) ; j <- matrix(1:10, nrow=5) ; k <- c("one", "two", "three") mylist <- list(title=g, ages=h, j, k)mylist[[2]] # 显示列表中第2个数据对象mylist[["ages"]] # 显示指定名称的数据对象## 数据的导入⏹### 直接输入smalldata<-data.frame(age=numeric(0), gender=character(0),weight=numeric(0))# smalldata<-edit(smalldata) # 在编辑器中编辑数据其中,类似age=numeric(0)表示建立指定模式、但不包含实际数据的变量。
⏹### 从带分隔符的文本文件中导入数据使用read.table函数。
注意“带分隔符的文本文件”的含义csv。
grades<-read.table("students.csv",header=T,sep=",")其中,sep=""表示分隔符的类型。