学习小组Day6笔记--饭饭

2020-04-08
今天的内容是学习R包(多个函数的集合),以dplyr为例。

一、配置Rstudio的下载镜像

CRAN的镜像没办法用来下载Bioconductor的包,为了保证我们可以自定义CRAN和Bioconductor的下载镜像,可以在Rstudio中通过两行代码进行设置。参考文章:你还在每次配置Rstudio的下载镜像吗?中的介绍,发现使用两行代码配置好下载镜像后,再次打开Rstudio设置的国内镜像就不存在了,还需重新进行配置。

图1.png

那么,就需要进入高级模式:需要用到R的配置文件.Rprofile

这里需要科普Rstudio最重要的两个配置文件:在刚开始运行Rstudio的时候,程序会查看许多配置内容,其中一个就是.Renviron,它是为了设置R的环境变量;而.Rprofile就是一个代码文件,如果启动时找到这个文件,那么就替我们先运行一遍(这个过程就是在启动Rstudio时完成的)。

file.edit('~/.Rprofile')  #编辑文件
options("repos" =c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))  #对应清华源
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")  #对应中科大源,当然其他地区的镜像也可以

最后,保存、重启Rstudio、再运行options()$reposoptions()$BioC_mirror即可发线还是我们配置的国内镜像,无需再次进行。

图2.png
神仙操作!从此再也不用每次下载包都要设置镜像了。

二、安装R包

重要!!! 确保联网操作!

R包的安装命令:
包存在于CRAN网站:install.packages("包")
包存在于Bioconductor网站:BiocManager::install("包")

如何知道包存在于哪里?----谷歌搜索吖。

以下载dplyr包为例,安装过程中并不是一帆风顺,出现了提示:有二进制版本,但源代码是后来的,是否要从源代码安装需要编译的包,回答no
图3.png

花花:“学R语言要高冷,能拒绝就拒绝。”

三、加载R包

library(包)或者require(包)均可

图4.png

四、dplyr五个基础函数学习

示例数据使用内置数据集iris的简化版,选取iris中1-2行,51-52行,101-102行的元素。
test <- iris[c(1:2,51:52,101:102),]

R语言内置了许多著名的数据集,iris是其中的一种,中文名是鸢尾花,有四个属性,分别是Sepal.Length(花萼长度),Sepal.Width(花萼宽度),Petal.Length(花瓣长度),Petal.Width(花瓣宽度),以及一个类别标签Species。

  • 新增列:mutate()
    mutate(test, 新增的列名 = 新增的内容)
    图5.png
  • 按列筛选:select()
    selsect(test, 列号或者列名)
    图6.png
  • 筛选行:filter()
    filter(test,Species=="setosa")某一列名加上限制条件
    图7.png
  • 按某一列或某几列对表格进行排序:arrange()
    arrange(test, Sepal.Length) #默认按照这一列从小到大排序
    arrange(test, desc(Sepal.Length)) #按照这一列从大到小排序
    图8.png
  • 汇总:summarise()
    结合group_by进行分组,实用性更强
    group_by(test, Species) #按照Species分组
    summarise(test, mean(Sepal.Length), sd(Sepal.Length)) #计算Sepal.Length的平均值和标准差
    summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length)) #先按照Species分组,计算每组Sepal.Length的平均值和标准差
    图9.png

五、dplyr两个实用技能

  • ** 管道操作 %>% (快捷键:cmd/ctr + shift + M)**
    内涵:将左边的值管道输出为右边调用的函数的第一个参数。
    test %>% group_by(Species) %>% summarise(mean(Sepal.Length), sd(Sepal.Length)) #把按照Species分组的结果给后面summarise命令使用
    图10.png
  • 统计某列的unique值count()
    count(test,Species) #统计Species列中每项的重复数
    图11.png

六、dplyr处理关系数据

将2个表进行连接,注意不要引入factor

首先创建两个数据框,test1和test2
  • 取交集:内连inner_join()
    inner_join(test1, test2, by = "x") #取两个表中x的交集,连在一起
    图13.png
  • 左连:left_join()
    left_join(test1, test2, by = 'x') #以test1的x为基准将2个表连起来
    left_join(test2, test1, by = 'x') #以test1的x为基准将2个表连起来
    图14.png
  • 全连:full_join()
    full_join( test1, test2, by = 'x')
    图15.png
  • 半连接:semi_join #返回能够与y表匹配的x表所有记录
    semi_join(x = test1, y = test2, by = 'x') #
    图16.png
  • 反连接:anti_join() #返回无法与y表匹配的x表所有记录
    anti_join(x = test2, y = test1, by = 'x') #返回test2中x与test1中无法匹配的内容
  • *简单合并

注意,bind_rows()函数需要两个表格列数相同,而bind_cols()函数则需要两个数据框有相同的行数。

首先建立三个数据框test1、test2、test3,其中test1与test2有相同的列数,test1与test3有相同的行数。


图18.png

图19.png

今天的内容有点多,脑袋懵懵的......是一堆需要经常用才会记住的内容了~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容