R语言-数据结构入门-2

R语言的学习

开始


    开始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。

图来源于R语言实战

第二章 创建数据集

2.1数据集的概念

R可以处理的数据类型(模式)包括数值型、字符型、逻辑型(TRUE / FALSE)、复数型(虚

数)和原生型(字节)。在R中,PatientID、AdmDate和Age为数值型变量,而Diabetes和Status则为字符型变量。另外,你需要分别告诉R:PatientID是实例标识符,AdmDate含有日期数据,Diabetes和Status分别是名义型和有序型变量。R将实例标识符称为rownames(行名),将类

别型(包括名义型和有序型)变量称为因子(factors)。


图来源于R语言实战

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,身心疲惫时候可以听听别人讲座,这种有意想不到的收益。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,968评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,682评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,254评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,074评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,964评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,055评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,484评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,170评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,433评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,512评论 2 308
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,296评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,184评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,545评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,150评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,437评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,630评论 2 335

推荐阅读更多精彩内容