R语言编程艺术学习笔记—第一章

断断续续学习R语言已经很久,一直想要记录下自己学习时的所想所得,但是始终没有行动,这次终于决定记录下学习R语言编程艺术时的所思所悟,原因是第二次读这本书,终于意识到书中的精髓,想要和大家分享,如果有理解不对的地方,也欢迎大家批评指正。

第一章   快速入门

刚开始认识R语言,最重要是了解R语言中数据结构(当然,安装和启动我略掉了,大家记得安好Rstudio)。

1.向量

向量包括字符型向量和数值型向量,注意向量里面元素只能由一种组成,不能混合

例如:x<-c(1,2,3)数值型;x<-c("a","b","c")字符型

索引主要用于寻找某个具体的元素,R语言中用x[1]指向x中的第一个元素,以此类推。

2.字符串

y<-"abc"
> y
[1] "abc"
> mode(y)
[1] "character"
使用mode()函数可以判断变量具体类型

3.矩阵

这里的矩阵就是指高代中的矩阵,其实矩阵也是向量,和向量不同的是,矩阵的索引是x[a,b],a代表某行,b代表某列,使用matrix()函数创建矩阵,注意矩阵按列排序。

> x<-matrix(c(1:4),nrow=2,ncol=2)
> x
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> x[1,2]
[1] 3

4.列表

列表生成用list(),列表和向量不同之处,列表中元素既支持数值型,也支持字符型,可以通过$符号来访问列表中具体的组件;

> x<-list(u=2,v="a")
> x
$u
[1] 2
$v
[1] "a"
这里因为定义了列表中两个组件,所以可以用$来分别访问。

5.数据框

data.frame()用于生成数据框,数据框本质是列表,其中元素既支持数值型,也支持字符型

> x<-data.frame(list(kids=c("Jack","Tom"),ages=c(12,10)))
> x
  kids ages
1 Jack   12
2  Tom   10
> x$kids
[1] Jack Tom 
Levels: Jack Tom
> x$ages
[1] 12 10

实例包含创建数据框以及访问列表中元素的方法。

6.每章案例

每章案例,偏数学类,比较经典综合,本章是考试成绩的回归分析

 
 
examsquiz<-read.table("ExamsQuiz.txt",header=FALSE)    #我没找到源数据,通过在工作目录中新增TXT文档读入#
> class(examsquiz)  #查看数据类型#
[1] "data.frame"
> head(examsquiz)  #读取数据#
   V1  V2  V3
1 2.0 3.0 4.0
2 3.3 2.0 3.7
3 4.0 4.3 4.0
4 2.3 0.0 3.3
5 2.3 1.0 3.3
6 3.3 3.7 4.0
> lma<-lm(examsquiz[,2]~examsquiz[,1])  #建立一个线性回归模型函数是lm(),取examsquiz中第二列和第一列拟合线性模型,其中第二列代表因变量,第一列代表自变量#
> summary(lma)     #对模型拟合结果进行概括性分析#

Call:
lm(formula = examsquiz[, 2] ~ examsquiz[, 1])

Residuals:
      1       2       3       4       5       6 
 1.8522 -0.9261  0.4164 -1.5582 -0.5582  0.7739 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)   
(Intercept)     -1.5880     2.3608  -0.673    0.538
examsquiz[, 1]   1.3679     0.7992   1.712    0.162

Residual standard error: 1.396 on 4 degrees of freedom
Multiple R-squared:  0.4228,	Adjusted R-squared:  0.2785  #R的平方值只有0.42,低相关性,模型拟合效果差#
F-statistic:  2.93 on 1 and 4 DF,  p-value: 0.1621

> lmb<-lm(examsquiz[, 2] ~ examsquiz[, 1]+examsquiz[,3])  #重新拟合,分析第2列与第1列和第3列间的线性相关性#
> summary(lmb)

Call:
lm(formula = examsquiz[, 2] ~ examsquiz[, 1] + examsquiz[, 3])

Residuals:
       1        2        3        4        5        6 
-0.01558 -0.48725  0.26938 -0.39559  0.60441  0.02464 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)  
(Intercept)    -13.8409     2.6026  -5.318   0.0130 *
examsquiz[, 1]   0.5075     0.3470   1.463   0.2397  
examsquiz[, 3]   3.9604     0.7904   5.010   0.0153 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.5268 on 3 degrees of freedom
Multiple R-squared:  0.9384,	Adjusted R-squared:  0.8973   
#R的平方值为0.94,高度拟合,模型拟合效果好,证明第二列值受2 个自变量影响#
F-statistic: 22.84 on 2 and 3 DF,  p-value: 0.01529


7.获取帮助的办法

1.直接使用help()函数,如:help(seq),help("plot")

2.使用?

8.获取案例的办法

获取案例可以帮助直接快速学习,很方便,

如:example("plot")

plot(cars)  #比如可以直接使用在某个数据集上,画图#
plot(table(rpois(100, 5)), type = "h", col = "red", lwd = 10,main = "rpois(100, lambda = 5)")  
 #复杂点可以编辑连接点类型,线条颜色,图形宽度,主标题等等#
结束语

第一章是快速入门,所有内容都是点到即止,书中后续章节会深入讲解,我也会持续更新~~敬请期待~

















猜你喜欢

转载自blog.csdn.net/anna_datahummingbird/article/details/79149370