学习小组DAY6笔记--Peng

作者: Peng_001 | 来源:发表于2019-10-14 21:59 被阅读0次

思维导图

  • R包的新手教程


    1.6.1 生信学习【R包的新手教程】DAY6.png

正式笔记

0. R包的获取

  • Rstudio 官网
  • R语言都有自己的说明书(cheatsheet),称为小抄。它是一个很好的学习操作指南。

1. 准备活计——tidyr小抄

  • tidyr 包功能见思维导图
  • 它可以将需要的数据处理成标准而同一的数据框(Tidy Data),以便之后进行进一步的数据处理与作图,非常关键重要的一步。

(0)修改工作路径

临时修改工作路径
setwd() 
#每次操作Rstudio可临时改动工作路径 但下次启用时便会恢复默认
修改默认工作路径
  • 通过在global options 中设置修改——选择default working directory改动至需要的目录——再次重新启动Rstudio

(1)安装R包

library(tidyr) #检测工作目录有无tidyr包
#没有安装会提示报错
install.packages("tidyr")
library(tidyr) #启动安装的包
  • 安装过程可能会报错 尝试更换不同镜像
  • 安装过程比较慢 直到工作台出现> 才算安装结束
  • 安装后的包会保存到本地C盘的临时会话的downloaded_packages目录下中,因为R包下载后会默认将二进制zip文件保存在里面,再解压安装到R的library目录下。

(2)R包操作之数据框

新建数据框
a<-data.frame(GeneId = rep("gene_001",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(12,7,3))
#新建一个3X3数据框赋值给a
a<-data.frame() #申明一个表格
#Geneld,SampleName,Expression 为定义的三个列的标题
#rep,表示重复,括号中填写要重复的字符,和重复次数。
#paste,连接两个字符串
#sep,分隔符,连接两个字符串,可以略去不填或者加上sep=""
一些小概念
  • key-value“键值对”,键与值对应,通过索引键可以查找到相对应的值。
  • 函数后面一般需要加括号,括号里第一个参数是数据框名。
  • 字符串都需要加双引号。
  • 行raw,列col(column)。

(3)认识Tidy Data

  • Tidy data 是一种组织表格数据的方式,提供了一种能够跨包使用的规范格式
  • “统一”的数据格式表示,每个变量占一列,每个情况or观测值占一行。

2. 开始实战

Gather&Spread

(1)gather()

  • gather() moves column names into a key column, gathering the column values into a single value column.
a<- data.frame(country=c("German","Korea","China"),"2018"=paste(c(1,2,3),"K"),"2019"=paste(c(8,9,10),"K")) 
#创建一个数据框
gather(a,X2018,X2019,key = "year",value = "cases")
#表格显示年份前会自动带上“X” 需要注意一下
gather(a,"year","case",X2018,X2019)
#也可以这样写,省略key与value的输入
gather(a,year,cases,-country)
#若需要合并的列名过多,也可以这样用排除法,代表合并除了country以外的列

(2)spread()

  • spread() moves the unique values of a key column into the column names, spreading the values of a value column across the new columns.
a<- data.frame(country=c("German","Korea","China"),"years"=c(2018,2018,2018,2019,2019,2019),"cases"=paste(c(1,2,3,8,9,10)))
#创建一个数据框
spread(a,years,cases) #分散years,cases的列

Handle Missing Values

  • 即有些单元格有空值的情况。
  • 将实例文件放在工作目录下
    X1,X2
    A,1
    B,
    C,
    D,3
    E,
  • 见以上文本 命名为XX
X<-read.csv('XX.txt')

(1)drop_na()

  • 出现空值 删除正行
drop_na(X,X2) #括号里填数据框名,有空的列名

(2)fill()

  • 根据上一行的数值填充上
fill(X,X2) 

(3)replace_na()

  • 将空填补进一个指定的数值
replace_na(X,list(X2=2)) #将数据X中第二列空格填入2

Expand Tables

(1)Complete()

  • 补充空值位置 并输入一个特定值
complete(X,nesting(X1),fill=list(X2=7)) #

(2)Expand()

  • 列出每列值所有可能组合
a<-data.frame(GeneId = rep("gene_001",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(12,7,3))
#直接用之前举例子的数据框
expand(a,GeneId,SampleName,Expression)
#列出所有对应的可能(3x3=9)

参考:
生信公众号 生信星球 教程

相关文章

网友评论

    本文标题:学习小组DAY6笔记--Peng

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