美文网首页生信星球培训第六期
学习小组Day6学习笔记--徐沫沫

学习小组Day6学习笔记--徐沫沫

作者: 徐沫沫 | 来源:发表于2018-09-23 19:06 被阅读2次

滴滴滴,第六天打卡~~~~

准备工作:

part1:学会获取一个R包的小抄

方法1:百度/谷歌
方法2:找Rstudio的cheatsheet网站
https://www.rstudio.com/resources/cheatsheets/
方法3: 生信星球公众号(教程用的包)

part2:初步了解tidyr包

  • 它的功能主要有:
    (1)数据框的变形
    (2)处理数据框中的空值
    (3)根据一个表格衍生出其他表格
    (4)实现行或列的分割和合并
      这个包是把要用的数据处理成标准而统一的数据框:Tidy Data

part3:学习极简安装R包:

1.命令:library(tidyr),如果没有安装这个包,会报错,进行下一步;
2.下载和安装tydir,命令:install.packages("tidyr")
(默认安装到工作目录里,若是报错,打不开连接,可以换个镜像试试)

part4:关于数据框

1.新建数据框,命令:

a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))

新建一个数据框并赋值给a,括号里是“列名”=列值,注意,这里列名要加双引号

rep,表示重复,括号中填要重复的字符和重复次数。
paste,连接两个字符串,括号要填这两个字符串并指定分隔符(sep),没有分隔符就填sep=""。

字符串需要加双引号

  1. key-value
    “键值对” ,表示一种对应关系。“键”和“值”都是列名,如 SampleName 和 Expression 。
  2. 函数后面一般都要加括号,括号里第一个参数是数据框名。
  3. 字符串要加双引号(行名和列名也是字符串,但是可以不用加)。

part5:认识Tidy Data

一种组织表格数据的方式,提供了一种能够跨包使用的“统一”的数据格式:
每个变量(variable)占一列,每个情况(case)和观测值(observation)占一行。


终于进入正题:

1.Reshape Data

gather:将数据框转换为Tidy Data;
spread:让tidy data一夜回到解放前。哈哈哈~~~

  • 将示例数据下载或者复制粘贴成table4a;


    image.png
  • a<- gather(table4a,1999,2000,key="year",value="cases")

image.png

或者,需合并的列名也可以列在最后:

  • b <- gather(table4a,"year","cases",1999,2000)
    gather括号里的分别是:
    数据框名,需合并的列名(两个),合并后的key列名,value列名。
  • 如果合并前的列名比较多,可以用排除法来偷懒:
    gather(a,year,cases,-country) # -country的意思就是合并除country外剩下的列。

2.Handle Missing Values

处理丢失的数据,即某些单元格有空值的情况。
三种处理方式:
(1) 删除整行
(2) 根据上下文(瞎)蒙一个
(3) 同一列的空值填上同一个数。

NA表示空值,所以新建的时候空着就好。

  • 获得图示数据框X
    X<-read.csv('doudou.txt')
    默认参数:默认分隔符是“,”,导出时也不会默认加引号,并且转换txt也不会变乱码!
    如果用read.table,默认参数很笨哦,
这花花老师发现的嘞,厉害厉害~~~~
  • csv的导入和导出方式:
    导入:X<-read.csv('doudou.csv')
    导出:write.csv(X,'doudou.csv')
  • drop_na():有空值的,整行删除;
    括号里填数据框名,有空值那一列的列名;
    例如:drop_na(X,X2)
  • fill(),同一列的空值填上同一个数;
    例如:fill(X,X2) # 根据上一行的值填充
  • replace_na(),空值填进去特定的一个数值,括号里填数据框名,要填的列名=要填的值;
    例如:replace_na(X,list(X2=2))

3. Expand Tables

  • complete(把空值的位置补全)
    例如:complete(X,nesting(x1),fill=list(x2=5)) # 把刚才的空值补上5;

    image.png
  • expand
    (列出每列值所有可能的组合--根据下面的示例来理解这句话)
    示例:

data_eg1<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
image.png
expand(data_eg1,GeneId,SampleName,Expression)
image.png

4.split cells

(把一列拆成两列。目测原列必须要有分隔符才行啊好像。)
原数据:


image.png
  • separate:按列分割
    table_sep <- separate(table3,rate,into=c("cases","pop"))
image.png
  • separate_rows:按行分割
    separate_rows(table3,rate)

    image.png
  • unite:分割完了再合并回去
    unite(table_sep,cases,pop,col="rate",sep="/")

    image.png

今天就到这里咯~~~

相关文章

  • 学习小组Day6学习笔记--徐沫沫

    滴滴滴,第六天打卡~~~~ 准备工作: part1:学会获取一个R包的小抄 方法1:百度/谷歌方法2:找Rstud...

  • 学习小组Day3笔记--徐沫沫

    滴滴滴~~~第三天打卡 ( ̄︶ ̄) 今天的主要内容是学会在linux环境下安装软件 准备工作 检查有没有bzip2...

  • 学习小组Day4笔记--徐沫沫

    R语言初认识 查看电脑用户名是中文还是英文改为英文用户名,安装R和Rstudio; 这是个大坑 下载R和Rst...

  • 学习小组Day5笔记--徐沫沫

    理解数据类型:向量和数据框 part1: 向量 1. 向量 区分标量和向量“元素” 指的是数字或者字符串(用chr...

  • 学习小组Day2笔记--徐沫沫

    滴滴~~ 第二天,打卡 今天的内容概览 注册服务器 阿里云 腾讯云 华为云 登录服务器 putty(windows...

  • 生信星球学习小组Day1笔记--徐沫沫

    滴~~ 第一天,打卡 第一次参加这种方式的学习小组,给自己打气,也给大家打气,希望我们都能坚持到最后,学到知识,希...

  • 【爱之沫沫】20180407学习力践行Day6:

    今天比赛抓小橡皮,十五十五谁赢谁先抓,娃特意嘱咐我每一局要伸几个手,1个还是2个,然后自己好凑成15。每次她赢了先...

  • 又是一年梨花开(5)

    不知不觉的,沫沫进了保安室。 还没等沫沫说话,保安叔叔先开口了:“我知道你,你叫徐沫,小时候爸爸走了,...

  • 长篇小说||生(759)

    李光沫预备用这次期末考试来达到一个目的。 不出所料,学习小组对李光沫来说,就是个坑。原先那个组尚好,组员平均成绩好...

  • 长篇小说||生(743)

    对于学习小组,李光沫不太感兴趣,他独来独往惯了,归属感不强,自然也就不会想着成立一个学习小组邀请要好的同学加入,或...

网友评论

    本文标题:学习小组Day6学习笔记--徐沫沫

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