美文网首页生信星球培训第135期
生信星球小组课day6笔记-老白

生信星球小组课day6笔记-老白

作者: meraner | 来源:发表于2022-04-27 09:56 被阅读0次

一、安装和加载R包

本白刚好前一阵子装过dplyr这个包,而且除了一些一问题。就是加载的时候出现如下报错。


加载dplyr出错.png

查了半天发现是这个原因:“R语言调用函数时,若有两个同名函数, 在查找到第一个的时候查找停止并进行调用。于是出现了上述报错。”
解决办法是输入命令

dplyr::filter
dplyr::lag
dplyr::intersect
dplyr::setdiff
dplyr::setequal
dplyr:: union

再重新输入library(dplyr)就没再报错了。算是个小经验吧。

二、一些dplyr包里的函数(命令)

先建一个新的小一些的数据框吧。
test <- iris[c(1:2,51:52,101:102),] 意思是把iris数据框里的第1,2行,第51,52行,第101,102行的数据赋值给test这个新的数据框。

1.增加列的命令 mutate()
mutate(test, Area= Sepal.Length * Sepal.Width) 是增加一列Area 为每行里面Sepal.Length和Sepal.Width相乘的数字。

2.选择列的命令select()
这个和昨天学的直接提取数据框里的某一列的元素是有差别的。比如都是想看第二列的数据。用select命令就更全面好看一些。


select.png

但是如果提取多列,输入似乎一样。感觉单列数据被歧视了啊。


select多列.png
除了可以用列的序列号之外,还可以用列的名称,比如select(test, Sepal.Length)
还可以用这个函数产生新的数据框newtest<-select(test, 1)
用select新建.png
  1. 筛选行filter()
    filter(test, Species == "setosa")是筛选出Species为setosa的所有行。这个命令也可以新产生子数据框,和select()类似。
    filter(test, Species %in% c("setosa","versicolor"))是筛选出Species为setosa或versicolor的所有行。
    filter(test, Species == "setosa"&Sepal.Length > 5 )是筛选出Species为setosa和Sepal.Length大于5的行。

  2. 对数据框排序Arrange()
    arrange(test, Sepal.Length)按照Sepal.Length的数值从小到大排列
    arrange(test, desc(Sepal.Length))按照Sepal.Length的数值从大到小排列

  3. 汇总summarise() 可以实现统计功能
    summarise(test, mean(Sepal.Length), sd(Sepal.Length))根据test里的数据,计算Sepal.Length的平均数和标准差

summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))按照Species分类后,分别计算平均数和标准差。

  1. count(test,Species)可实现计数功能
    对Species的数量进行计数

三、管道功能

  1. tidyverse是一个连贯的数据包操作系统。大概是包含了很多数据统计计算用的包吧。


    tidyverse.png
  2. 管道运算符 %>%,也可以叫做管道函数
    “其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以大量减少内存中的对象,节省内存。” “将%>%左边的对象传递给右边的函数,作为第一个选项的设置(或剩下唯一一个选项的设置)”。对管道的理解还不怎么清晰啊。。
test %>% 
   group_by(Species) %>% 
   summarise(mean(Sepal.Length), sd(Sepal.Length))

意思是把test的数据按照Species进行分组,然后对每组进行统计Sepal.Length的平均数和方差。似乎比一步一步单独计算要节省时间和内存。

四、dplyr处理关系数据

在学习管道概念的时候看到,dplyr这个包的作用有二:数据转换和处理数据关系。

  1. data.frame()函数用来从向量产生数据框
test1 <- data.frame(x = c('b','e','f','x'), 
                    z = c("A","B","C",'D'),
                    stringsAsFactors = F)
 test2 <- data.frame(x = c('a','b','c','d','e','f'), 
                     y = c(1,2,3,4,5,6),
                     stringsAsFactors = F)

这是产生了test1和test2两个数据框

2.inner_join(test1, test2, by = "x")内部连接:取test1和test2两个数据框的交集

  1. left_join(test1, test2, by = 'x')left_join(test2, test1, by = 'x')两个命令结果是不同的。分别以左侧的数据框为基础,进行连接
    4.full_join( test1, test2, by = 'x') 全部数据都用上
  2. semi_join(x = test1, y = test2, by = 'x')半连接,意思是把x表里的数据和y去找能匹配上的。
    6.anti_join(x = test2, y = test1, by = 'x')反连接,正好相反,把x表里的数据去和y比对,找不能匹配上的。
  3. bind_rows()和bind_cols()两个函数用于简单合并。 bind_rows()是合并行,要求列数必须一致,才能合并的了。bind_cols()是合并列,则要行数一致才行。

相关文章

  • 生信星球小组课day6笔记-老白

    一、安装和加载R包 本白刚好前一阵子装过dplyr这个包,而且除了一些一问题。就是加载的时候出现如下报错。 查了半...

  • 生信星球小组课day2笔记-老白

    一、学生信必懂的Linux是个啥 Linux和window,Mac都是操作系统,我觉得它就是一个和计算机沟通的界面...

  • 生信星球小组课day3笔记-老白

    一、在Linux里面安装软件第一步安装conda 用到miniconda[https://mirrors.tuna...

  • 生信星球小组课day4笔记-老白

    一、我的老朋友R,还是白发新见的样子 R和Rstudio已经安装好了很久。再复习一下:左上象限:脚本编辑区(这个适...

  • 生信星球小组课day5笔记-老白

    一、R语言的几个趣知识 R的代码都是带括号滴,英文括号。里面都是一些参数设定。 数字或者字符串这些元素,可以组成向...

  • 生信星球小组课day1笔记-老白

    一、小组学习须知 用电脑学和小伙伴一起学要讨论作业是在简书发表笔记在AM8-PM11期间群里交流打卡 二、各种武器...

  • 生信星球学习小组Day6

    Linux环境下的软件安装 第一部分:下载安装miniconda 第二部分:使用conda 以fastqc软件为例...

  • 学习小组Day6笔记--kan

    笔记来自生信星球学习小组资料 Day6 学习内容-R包安装使用 1.思维导图镇楼 2.R包基本情况 由社区开发(d...

  • 学习小组Day7笔记——冬梅

    生信星球学习笔记-Day6测序今天的思维导图主要参考了以下文章 测序的世界生信小白第8天 名词结构化测序技术原理及...

  • Day-1--小陈

    生信星球-小组学习-day1 ##小陈 1.关于学习方法 学习、索引、小组讨论、正确提问、笔记、总结;心得 2...

网友评论

    本文标题:生信星球小组课day6笔记-老白

    本文链接:https://www.haomeiwen.com/subject/nibkyrtx.html