学习小组Day6笔记-Li

生信学习第六天~学习R包!很重要!!

R包是多个函数的集合,具有详细的说明和示例
以下均以dplyr为例

第一步

镜像设置,为了加速包的下载
1.可以进入设置里手动设置
options()$repos 可以检验

2.输入下面两行代码即可

# options函数就是设置R运行过程中的一些选项设置
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源

可以用options()$BioC_mirror检验一下

3.用这个方法就可以不用每次打开都再配置一遍👇
首先编辑一个Rprofile文件
file.edit('~/.Rprofile')
这样的话在每次打开前Rstudio都会先运算一遍这个文件
然后复制黏贴一下2中的 代码,保存后重启即可
可以用options()$reposoptions()$BioC_mirror再检查一下
这种办法不一定都能成。。比如我就失败了

第二步

安装R包
命令是install.packages(“包”)或者BiocManager::install(“包”)
取决于你要安装的包存在于CRAN网站还是Biocductor,可以谷歌搜到存在于哪里。

第三步

加载

library(包)
require(包)

两个都可以

接下来就先装个dplyr试一试
然而。。。事情总是不可能这么一帆风顺。。

这不就成不了了

清华不爱我。。这个时候。。手动换一个镜像再试试
这时候诡异的事情又出现了,手动为啥换了也没用???
还出现了一条诡异的警告⚠
诡异的警告

难道我要在第一步就跪了吗/(ㄒoㄒ)/
不!我不认输!然后百度一波!
一个歪果网站告诉了我一个小秘密
输入options(repos = c(CRAN = "https://cran.rstudio.com"))

成了!就是有点慢otz

第四步

学习dplyr五个基础函数
小声bb:学完会发现好像excel
先随便弄了一个示例数据
test <- iris[c(1:2,51:52,101:102),]

示例数据

1.mutate()新增列
输入mutate(test, new = Sepal.Length * Sepal.Width)

mutate

如图,意思就是新增了个叫“new”的列,数值等于Sepal.Length * Sepal.Width
2.select()按列筛选
可以按列号筛选
筛选出第1列

筛选出第1、3列

筛选出1到4列

这里用到的是昨天的向量赋值的知识~注意举一反三
当然也可以按列名筛选
按列名筛选

和上面的方法大同小异,想要什么列就输名就好了
注意要看清楚列名的大小写!!!

3.filter()筛选行

栗子1

栗子2

栗子3

可以看出来可以加入各种筛选条件,用到的命令都是昨天学过的,复习一下~
需要注意一下的是
字符一定要记得加" "
等于号是==
与是&
4.arrange()按某1列或某几列对整个表格进行排序
arrange()默认从小到大排序
从小到大

arrange(, desc())加上desc变从大到小
从大到小

当然同时按几列也可以,列名间加上各种符号即可
5.summarise()汇总
结合group_by使用实用性强
mean平均值,sd标准差

先按Species然后再按组求值

第五步

dplyr两个实用技能

1.管道操作 %>%(cmd/ctr + shift + M)

管道操作

一顿操作之后会发现得到了和第四步里最后一个操作一样的结果,其实管道操作就是“组合小功能完成大任务”,在中间变量特别多的时候很适用~
2.count统计某列的unique值
栗子

第六步

dplyr处理关系数据
先建两个数据框,注意不要引入factor
stringsAsFactors是这个意思

建两个新数据框

1.inner_join内连,取交集

inner_join,取x相同的行

2.left_join左连
注意输入指令时数据框名的先后

test1在先

test2在先

3.full_join全连
栗子

对换次序只改变行、列的次序,数据框里的所有的数据都是一样的
4.semi_join半连接,返回能够与y表匹配的x表所有记录
表顺序改变,结果是不一样的哦

5.anti_join反连接,返回无法与y表匹配的x表的所记录

表顺序改变,结果是不一样的哦

6.简单合并
相当于base包里的cbind()函数和rbind()函数
bind_rows()函数需要两个表格列数相同,而bind_cols()函数则需要两个数据框有相同的行数
新建test1、2、3

合并1、2(有相同列数)

合并1、3(有相同行数)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容