生信星球培训第二十五期

学习小组DAY6笔记--Peng

2019-10-14  本文已影响0人  Peng_001

思维导图

正式笔记

0. R包的获取

1. 准备活计——tidyr小抄

(0)修改工作路径

临时修改工作路径
setwd() 
#每次操作Rstudio可临时改动工作路径 但下次启用时便会恢复默认
修改默认工作路径

(1)安装R包

library(tidyr) #检测工作目录有无tidyr包
#没有安装会提示报错
install.packages("tidyr")
library(tidyr) #启动安装的包

(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=""
一些小概念

(3)认识Tidy Data

2. 开始实战

Gather&Spread

(1)gather()

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()

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

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)

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

上一篇下一篇

猜你喜欢

热点阅读