R语言入门

R是现今最受欢迎的数据分析和可视化平台之一。它是自由的开源软件,并同时提供Windows、Mac OS X和Linux系统的版本。在接下来的时间,我将把掌握、精通这个软件所需的技能学习过程以系列文章的形式发表,记录我的学习过程,供大家参考,一起有效地使用它分析自己的数据。工欲善其事必先利其器,学习R语言数据分析,第一步自然是R安转。R可以在CRAN上免费下载,安装过程可以参考我前面的视频教程

1. windows下安装R和Rstudio

2. mac下安装R和Rstudio

3. 单细胞数据分析相关R包安装

一、R的使用

R是一种区分大小写的解释型语言。你可以在命令提示符(>)后每次输入并执行一条命令,或者一次性执行写在脚本文件中的一组命令 。

R语句由函数和赋值构成。R使用<-,而不是传统的=作为赋值符号。

学习一门语言,一定要学会查看帮助文档。R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力编程工作 。

包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library) 。函数 .libPaths() 能够显示库所在的位置, 函数 library() 则可以显示库中有哪些包。

有许多R函数可以用来管理包。第一次安装一个包,使用命令install.packages()即可。也可以参考视频教程单细胞数据分析相关R包安装。例如,包gclus中提供了创建增强型散点图的函数。可以使用命令install.packages("gclus")来下载和安装它。

包的安装是指从某个CRAN镜像站点下载它并将其放入库中的过程。要在R会话中使用它,还需要使用library()命令载入这个包。例如,要使用gclus包,执行命令library(gclus)即可。

二、R中的数据结构

数据集通常是由数据构成的一个矩形数组,行表示观测,列表示变量。类似于数据库中的记录(record)和字段(field)。

R语言中的基本数据类型(模式)包括数值型、字符型、逻辑型(TRUE/FALSE)、复数型(虚数)和原生型(字节)。

R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。

我们接下来将逐个介绍这些数据结构。

1、向量 向量是用于存储数值型、字符型或逻辑型数据的一维数组,单个向量中的数据必须拥有相同的数据类型。执行组合功能的函数c()可用来创建向量(类似于编程语言中的一维数据 int[]、Object[]等,访问元素的方式和数组相同,使用下标从1开始)。

2、矩阵

矩阵是一个二维数组,只是每个元素都拥有相同的数据类型(数值型、字符型或逻辑型) 。可通过函数matrix()创建矩阵,阵中仅能包含一种数据类型 。

如上所示,创建了一个4行5列的矩阵,矩阵中的元素按照行填充,分表定义了行名、列名。

我们可以使用下标和方括号来选择矩阵中的行、 列或元素。X[i,]指矩阵X中的第i行, X[,j]指第j列, X[i, j]指第i行第j 个元素。选择多行或多列时,下标i和j可为数值型向量。

3 数组

数组(array)与矩阵类似,但是维度可以大于2。数组可通过array函数创建。其中vector包含了数组中的数据, dimensions是一个数值型向量,给出了各个维度下标的最大值,dimnames是可选的、各维度名称标签的列表。像矩阵一样,数组中的数据也只能拥有一种数据类型。

4、数据框

数据框可用来存储下图格式,不同的列可以包含不同的数据。数据框是R中最常处理的数据结构。数据框可通过函数data.frame()创建:mydata <- data.frame(col1, col2, col3,...)其中的列向量col1、 col2、 col3等可为任何类型(如字符型、数值型或逻辑型)。每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。


访问数据框中元素的方式有若干种。可以使用(如矩阵中的)下标记号,亦可直接指定列名,或是使用$符号,如下例:


5、因子

变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别变量。糖尿病类型Diabetes(Type1、 Type2)是名义型变量的一例。变量之间并没有先后顺序,只是表示不同类型。

有序型变量表示一种顺序关系。如上例中病情Status(poor、 improved、 excellent)是顺序型变量。病情为poor(较差)病人的状态不如improved(病情好转)的病人,但并不知道相差多少。

连续型变量可以呈现为某个范围内的任意值,并同时表示了顺序和数量。年龄Age就是一个连续型变量。

类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。类似于编程语言中的枚举类型。

函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。 举例,假设有向量: diabetes <- c("Type1", "Type2", "Type1", "Type1") 语句diabetes <- factor(diabetes)将此向量存储为(1, 2, 1, 1),并在内部将其关联为1=Type1和2=Type2 (具体赋值根据字母顺序而定)。

创建有序型变量,为factor()指定参数ordered=TRUE,通过指定levels选项来覆盖默认排序

6、列表

列表是一些对象的有序集合。列表允许整合若干(可能无关的)对象到单个对象名下。类似于编程语言中的类或是结构体。某个列表中可能是若干向量、矩阵、数据框,甚至其他列表的组合。可以使用函数list()创建列表:

mylist <- list(object1, object2, ...)

总结:

以上介绍了R语言中的基本数据类型和常用的数据结构,包括各种数据结构的创建和访问数据的方式,这些是存储数据的基础。便于我们后续进一步对数据进行分析处理

为了方便大家交流学习,共同进步,我特地创建了☞交流群☜,见文末。

参考资料:

1. windows下安装R和Rstudio

2. mac下安装R和Rstudio

3. 单细胞数据分析相关R包安装

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

推荐阅读更多精彩内容

  • 最近在学习R,主要在看《R语言入门与实践》这本书(Garrett Grolemund著,冯凌秉译,人民邮电出版社)...
    韦子谦阅读 1,678评论 0 5
  • 文章来自百度文库R 语言入门, 略有修改其中部分参考y叔和生信技能树jimmy大神的帖子https://wenku...
    土豆学生信阅读 1,469评论 0 6
  • 由于是从去年12月份到现在(1月25日)断续记录的notes,多且乱。根据bilibili up:基因学苑[htt...
    ks_c阅读 923评论 0 0
  • 一个不推荐自己编程,高度优化的面向对象的静态统计语言 1、序 用知乎体来整理先假设啥好的软件都没有,我们先来想想一...
    JSong1122阅读 1,258评论 0 0
  • Step1:下载和安装R Windows和OS X用户可以从CRAN(Comprehensive R Archiv...
    胡阿白阅读 2,070评论 0 3