R包什么?
R包是R函数,编码和样本数据的集合, 它们存储在R环境中的名为“library”的目录下。 默认情况下,R在安装过程中安装一组软件包。当需要某些特定的目的时,也可根据需要添加更多的包。 当我们启动R控制台时,默认情况下只有默认软件包可用。 已经安装的其他软件包必须明确加载才能被要使用的R程序使用。
注意:学生信,R语言必学的原因是丰富的图表和Biocductor上面的各种生信分析R包。
安装和加载R包
- 镜像设置
最基础的是在Rstudio中进行了设置(R镜像是为了方便世界各地的使用者下载R软件及相关软件包,在各地设置的镜像。但是需要去官网下载,下载速度太慢。所以,选择离你最近的镜像,你下载R软件或R包的速度相对较快)。后来需要自定义我们的下载镜像,主要通过两行代码进行:
option ("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
下次再打开Rstudio,试试options()$BioC_mirror检查是否是国内镜像系统。如果发现不是得花,需要进行高级设置。
R的配置文件 .Rprofile :R中经常会使用一些命令,而且需要重复输入,非常麻烦。如果能够一打开R就直接使用会方便很多。通过配置一个.Rprofile文件,可以达到我们的目的。操作如下:
file.edit('~/.Rprofile')
再添加options两行代码,保存重启即可
补充:.Renviron:是给R包一个家,它是为了设置R的环境变量。
安装加载R包
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
install.packages("dplyr")
library(dplyr)
示例数据如下:使用内置数据集iris的简化版
test <- iris[c(1:2,51:52,101:102),]
什么是iris数据集:
dplyr五个基础函数
dplyr包主要用于数据清洗和整理,主要功能有:行选择、列选择、统计汇总、窗口函数、数据框交集等是非常高效、友好的数据处理包.
- mutate(),新增列
mutate(test, new = Sepal.Length * Sepal.Width)
新增一个new列,内容是Sepal.Length * Sepal.Width(长度*宽度)
- select(),按列筛选
1 按列号筛选
select (test,()),可以是标量,可以是向量
2 按列名筛选 - filter()筛选行
filter(test, Species == "setosa") 筛选行为物种为setosa的物种
filter(test, Species == "setosa"&Sepal.Length > 5 ) 筛选物种为setosa并且Sepal.Length > 5的行。如果中间是|,就是筛选的或者
filter(test, Species %in% c("setosa","versicolor"))筛选,物种符合setosa,versicolor的行
注意!!!x %in% y 的意思是“对x里的每个元素进行判断,判断它是否在y中存在,存在就返回TRUE,不存在就返回FALSE”,多的元素在前,少的元素在后。
- arrange(),按某1列或某几列对整个表格进行排序
arrange(test, Sepal.Length)#默认从小到大排序
arrange(test, desc(Sepal.Length))#用desc从大到小
- summarise():汇总
summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值和标准差
summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) **先按照先按照Species分组,计算每组Sepal.Length的平均值和标准差**
其中, A tibble: 3 x 3
=行*列
Groups: Species [3]
以。。进行的分组
dplyr两个实用技能
管道操作 %>%
magrittr包,主要定义了4个管道操作符,分另是%>%, %T>%, %$% 和 %<>%。其中,操作符%>%是最常用的,其他3个操作符,与%>%类似,在特殊的使用场景会起到更好的作用。
[R中的管道操作符%>%]https://www.jianshu.com/p/7d034789da41
count统计某列的unique值
count(test,Species)
不同物种中的数量
dplyr处理关系数据
data.frame()函数用法:将两个表进行连接
test1 <- data.frame(x = c('b','e','f','x'), z = c("A","B","C",'D') stringsAsFactors = F)
stringsAsFactors=FALSE作用:用read.table和其衍生品比如read.csv read.delim,R会自动把字符串string的列辨认成factor。比如你有一个全班成绩数据集,第一列名字,第二列性别,第三列语文成绩,第四列数学成绩。那么第一列和第二列如果你不告诉R
stringsAsFactors=FALSE 那么R就把这两列认成因子模式factor了。
- 內连接inner_join,取交集
指仅仅保留x,y中相匹配的观测,相当于取了个交集;以 by="x"为基准,下同
inner_join(test1, test2, by = "x")
- 外连接
1 左连接 left_join
y中未匹配的观测丢弃,x中未匹配的观测保留,y中以NA填充
left_join(test1, test2, by = 'x')
2 全连full_join
x,y中观测全部保留,相当于取了并集
full_join( test1, test2, by = 'x')
- 半连接:semi_join
保留x中与y匹配的观测,它与内连接的不同在于,取交集但是并不合并y而仅仅是保留了x,y的作用是做了筛选而已
semi_join(x = test1, y = test2, by = 'x')
- 反连接:anti_join
是半连接的反向操作,用y做筛选,找出非相交的部分保留下来
anti_join(x = test2, y = test1, by = 'x')
- 简单合并
在相当于base包里的cbind()函数和rbind()函数;
注意,bind_rows()函数需要两个表格列数相同
而bind_cols()函数则需要两个数据框有相同的行数