开始
开始R语言的学习已经有一段时间了,正在按计划开始学习,虽然年底有点忙还是坚持按计划进行学习,这是学习的第一个节点时间,也该总结一下学习的成果,同时也勉励一下自己坚持,就像笑来老师说“短期期望不要太高,长期期望不要太低”。
第一章 R语言介绍
1.1为何要使用R
优势:
免费,开源的社群模式,支持各种图标创作,是一个可进行交互式数据分析和探索的强大平台,从多个数据获取数据转化为可用,各种图形界面支持GUI,支持各种系统
难点:
由于许多功能都是由独立贡献者编写的可选模块提供的,这些文档可能比较零散而且很难找到。事实上,要掌握R的所有功能,可以说是一项挑战。
1.2 R的获取和安装
R可以在CRAN(Comprehensive R Archive Network)http://cran.r-project.org上免费下载
疑问:CRAN下载和安装???已经见解决(见R语言分享第一篇文章)
1.3 R的使用
注意:rnorm(5)-> x与x<-rnorm(5)的语句等价,注释由符号#开头。在#之后出现的任何文本都会被R解释器忽略
1.3.2获取帮助
实例:
1.4包
R提供了大量开箱即用的功能,但它最激动人心的一部分功能通过可选模块的下载和安装来实现的。
使用命令 install.packages()安装包 update.packages()更新安装包 installed.packages()例出安装包。
1.5批处理
outfile是接收输出文件的文件名,options部分则列出了控制执行细节的选项。依照惯例,infile的扩展名是.R,outfile的扩展名为.Rout。
第二章 创建数据集
2.1数据集的概念
R可以处理的数据类型(模式)包括数值型、字符型、逻辑型(TRUE / FALSE)、复数型(虚
数)和原生型(字节)。在R中,PatientID、AdmDate和Age为数值型变量,而Diabetes和Status则为字符型变量。另外,你需要分别告诉R:PatientID是实例标识符,AdmDate含有日期数据,Diabetes和Status分别是名义型和有序型变量。R将实例标识符称为rownames(行名),将类
别型(包括名义型和有序型)变量称为因子(factors)。
2.2数据结构
注意:
1,单个向量中的数据必须,拥有相同的类型或模式(数值型、字符型或逻辑型)。同一向量中无法混杂不同模式的数据。
2,标量是只含一个元素的向量,例如f <- 3、g <- "US"和h <- TRUE,它们用于保存常量。
3,通过在方括号中给定元素所处位置的数值。
4,最后一个语句中使用的冒号用于生成一个数值序列
实例向量:
2.2.2矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通
过函数matrix()创建矩阵。
实例
#矩阵
y<-matrix(1:20,nrow = 4,ncol = 5) #创建矩阵行4例5
cells <-c(1,2,3,4)
rnames <-c("r1","r2")
cnames <-c("c1","c2")
newmatrix <-matrix(cells,nrow = 2,ncol = 2,byrow = T,dimnames =list(rnames,cnames))#按行填充
newmatrix
twomatrix <-matrix(cells,nrow = 2,ncol = 2,byrow = F,
dimnames =list(rnames,cnames))#按例填充
Twomatrix
注意:
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选
的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充(byrow=TRUE)
还是按列填充(byrow=FALSE)
实例:
YY <- matrix(1:10,nrow = 2)
> YY
[,1] [,2] [,3] [,4] [,5]
[1,]13579
[2,]246810
> YY[2,]#取行
[1]2468 10
> YY[,2]#取例
[1] 3 4
> YY[2,4]#取只定行列
[1] 8
>
YY[2,c(3,5)]#确制定行的多例
[1]6 10
>
2.2.3数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建,形式如下:
myarray <-array(vector, dimensions, dimnames)
其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。
注意创建顺序为:行例表顺创建
示例
> sheet1 <- c("A1","A2")# 创建向量
> sheet2 <- c("B1","B2","B3") #创建向量
> sheet3 <-c("c1","c2","c3","c4")# 创建向量
>
> E <- array(1:24,c(2,3,4),dimnames = list(sheet1,sheet2,sheet3))#创建2x3x4 行例表顺创建
> E
, , c1
B1 B2 B3
A1135
A2246
, , c2
B1 B2 B3
A179 11
A28 10 12
, , c3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , c4
B1 B2 B3
A1 19 21 23
A2 20 22 24
> E [1,1,1]# 行列表
[1] 1
2.2.4数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框可通过函数data.frame()创建:mydata <- data.frame(col1, col2,col3,...)
实例
#创建数据框
> #创建数据框
> MYID <- c(1,2,3,4)
> age <- c(21,23,23,25)
> diabetes <-c("T1","T2","T1","T2")
> sad <- c("poor","improved","excellent","poor")
> patientdata <- data.frame(MYID,age,diabetes,sad)
> patientdata
MYID age diabetessad
1121T1poor
2223T2improved
3323T1 excellent
4425T2poor
注意:每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。Attach注意当名称相同的对象不止一个时,这种方法的局限性就很明显了
> summary(mtcars$mpg)
Min. 1st Qu.MedianMean 3rd Qu.Max.
10.4015.4219.2020.0922.8033.90
> attach(mtcars)
> summary(mpg)
Min. 1st Qu.MedianMean 3rd Qu.Max.
10.4015.4219.2020.0922.8033.90
> plot(mpg,disp)
> plot(mpg,wt)
> detach(mtcars)
> mpg <-c(25,36,47)
> attach(mtcars)
with用法示例
with(mtcars,{print(summary(mpg))#输出到屏幕 统计概要
+plot(mpg,disp)#对其绘tu
+plot(mpg,wt)})#对其绘tu
Min. 1st Qu.MedianMean 3rd Qu.Max.
10.4015.4219.2020.0922.8033.90
注意:
Attach语句的注意:在数据框mtcars被绑定(attach)之前,你们的环境中已经有了一个名为mpg的对象。在这种情况下,原始对象将取得优先权,这与你们想要的结果有所出入。由于mpg中有3个元素而disp中有32个元素,故plot语句出错。函数attach()和detach()最好在你分析一个单独的据框,并且不太可能有多个同名对象时使用。任何情况下,都要当心那些告知某个对象已被屏蔽(masked)的警告。
wish
函数with()的局限性在于,赋值仅在此函数的括号内生效,你需要创建在with()结构以外存在的对象,使用特殊赋值符<<-替代标准赋值符(<-)即可,它可将对象保存到with()之外的全局环境中
> with(mtcars,{N<- summary(mpg)
+ keepstats <<- summary(mpg)})#赋值仅在此函数的括号内生效
> N
Error: object'N' not found
>keepstats
Min. 1st Qu.MedianMean 3rd Qu.Max.
10.4015.4219.2020.0922.8033.90
注意:将patientID指定为R中标记各类打印输出和图形中实例名称所用的变量。
2.2.5因子
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。
示例
> #因子
> D <- factor(diabetes)#类别变量
> D
[1] T1 T2 T1 T2
Levels: T1 T2
>
> status <-c("poor","improved","excellent","poor")#顺序变量
>
> status <- factor(status,ordered = T,levels =c("poor","improved","excellent"))
>
> status
[1] poorimprovedexcellent poor
Levels: poor < improved < excellent
数值型变量可以用levels和labels参数来编码成因子。如果男性被编码成1,女性被编码成2,则以下语句:
示例
> sex <- c(1,2)
> sex
[1] 1 2
> sex <- factor(sex, levels=c(1, 2),labels=c("Male", "Female"))#数值型变量
> sex
[1] MaleFemale
Levels: Male Female
2.2.6列表
列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。
对R语言的学习总结分享,发现在自己自学方面的问题和经验
1,学习笔记缺乏一定逻辑性,日后回看的时候没发看出清晰逻辑思路,笔记应该本节重要内容,实例、需要注意地方,有疑问地方这方向进行记录,第一章和第二章自学笔记太混乱。
2,R语言学习确实枯燥,所以一定抓住高效注意力的时候进行学习,比如早上注意力明显高于晚上,这种需要大量注意力的学习应该反正在自己注意力高效时段。
3,学以致用,要结合实际工作需求加以练习才是掌握语法高效手段。
4,学习进度还低于自己预期,过于关注点上的东西,不懂的可以先放一放,选过记录之后往后看,后面可能会豁然开朗。
5,身心疲惫时候可以听听别人讲座,这种有意想不到的收益。