# R语言基础知识-1

Abstract

这一期主要讲解R的基础知识,包括 (1)R及其IDE的安装,(2)R的基本操作,(3)R中的数据类型,(4)R数据的读入和写出。通过这一期,希望我们可以学会怎么将数据读入到R中,以及在R中怎么操作这些数据,为下面画图,以及统计分析打好基础。 ## R语言及其IDE的安装 R可以在官网上直接下载安装,R官网地址为:http://mirrors.xmu.edu.cn/CRAN/,下载最新版本的R,下载结束之后,直接安装即可。 IDE全称为integrate development environment,集成开发环境,它提供更为友好的编程界面,Rstudio是R语言最为流行和受欢迎的IDE,也是免费的,下载地址为:https://www.rstudio.com/products/rstudio/download/,直接选择相应的版本即可,下载之后安装。 安装完R和Rstudio之后,打开Rstudio,就是我们以后以后经常要用到的界面了。Rstudio一共有4个窗口,默认布局为:左上角为source,主要是新建project以及file;左下角为console,主要是用来直接输入代码,以及显示代码运行结果,右上角为environment和history,主要是显示当前进程中的对象,以及显示console中代码的历史记录;右下角为展示框,主要用来展示画图结果,以及包的帮助文档。这些功能我们后面也会逐渐讲解。

R的基本操作

虽然R比较简单,但是毕竟是一门编程语言,因此还是使用的命令行交互,和我们平时使用的点击交互页面不太一样,等逐渐了解了之后,你会发现这种方式更加灵活以及强大。 首先,我们先来讲解一下在R中的最基本的操作。一般来说,你可以直接在console(左下角)中输入语句来运行结果,R前面会有’>’提示你输入命令,比如我们输入

1+2
## [1] 3

下面就会给出结果3,你可以任意输入各种计算,比如乘法(*),除法(/),次方(^n)等等,具体的运算符可以查找资料,或者搜索,都可以很方便的查到。因此,可以看到R语言可以作为一个计算器来使用了。 R中一个很重要的概念就是变量,什么是变量呢?还以我们上面那个作为例子,直接输入

1+2
## [1] 3

得到3,但是如果我们想把3存储起来呢?那么就需要给它起一个名字,称之为变量,比如

a <- 1+2

我们可以看到这时候并没有3出来,这是因为3被赋值给了a,a就是变量,而3就是a变量的内容,赋值操作使用’<-’这个符号。这时候,我们如果直接打出a,就会在console中打印出a的结果

a
## [1] 3

可以看到a的被打印出来值出来了。 那么什么可以作为变量名呢?第一个字符必须是字母,不能是数字及其他字符,比如a123,a1234,都是正确的变量名,而1abc则不行。另外,注意R变量名区分大小写。

abc <- 1+2

这就是R的基本操作。

R的数据类型

那么R中的数据类型有哪些呢?还以上面的为例,

a <- 1+2
a
## [1] 3

可以看到a就是一个单独的数字,这个数字可以用来进行加减乘除等等操作,所以他就是数值型(numeric),可以使用class(a)来进行观察;

class(a)
## [1] "numeric"

那么相应的,既然有数值型,那么就会有字符串型,字符创在R中用“”括起来,比如,

a <- 1+3
a
## [1] 4
class(a)
## [1] "numeric"
a <- "3"
class(a)
## [1] "character"
b <- "jasper"
class(b)
## [1] "character"

可以看到原来是数值型的a如果用“”将3括起来,那么a就变成了字符型,而直接将“”括起来的jasper赋值给b,b就是字符型。R中还有因子(factor)等,但是用到的不多,我们就不在讲解了。 另外,我们用到的更多的其实是向量(vector),比如实际处理数据的时候,一个基因在10个样品中的表达量分别为1,2,3,4,5,6,7,8,9,10。那么在R中,就可以这样表示:

gene <- c(1,2,3,4,5,6,7,8,9,10)
gene
##  [1]  1  2  3  4  5  6  7  8  9 10
length(gene)
## [1] 10
class(gene)
## [1] "numeric"

这时候,gene就是一个vector,注意vector创建一定是使用c()来进行创建的。length函数是用来看这个vector的长度的,可以看到这个vector的长度为10。那么我们如果想从这个gene中减去某个gene怎么办呢?比如我们知道第一个样本中gene的表达量有问题,可以这样操作:

gene[1]
## [1] 1
gene[c(1,2,5)]
## [1] 1 2 5
gene[1:5]
## [1] 1 2 3 4 5
gene1 <- gene[-1]
gene1
## [1]  2  3  4  5  6  7  8  9 10
gene2 <- gene[-c(1,2,5)]
gene2 <- gene[-c(1:5)]
length(gene1)
## [1] 9

我们从gene中减去了第一个gene,用的是[-1],中括号用来表示取vector的第几个,称之为index,索引。前面加上-代表减去这个元素,如果想除去多个,那么将索引使用向量表示,c(1,2,5),如果是连续的,比如第一个到第五个元素,那么就可以使用c(1:5)这种形式来创建。


这是要睡觉的分割线,太晚了,先写这么多,大家有什么问题可以在群里面互相交流,我们在修改。微信公众号虽然每天只能发布一条消息,but这个消息是一个链接,所以我们只要把连接的内容修改了,或者添加,所以还是相当于发布新的消息。^_^