学习小组Day6笔记--单众
思维导图
Day6 思维导图.png从tidyr包开始学起
准备工作:学会获取R包的小抄
链接:[https://www.rstudio.com/resources/cheatsheets/]
回复生信星球公众号包的名字也可以获取。
安装R包
(1) 设置好工作目录(包会默认安装在工作目录里)
(2) 查询是否存在需要的包:library(tidyr)
(3) 下载和安装tidyr:install.packages("tidyr")
,直到控制台出现>
(4). 安装成功后加载,没有报错就是成功:library(tidyr)
新建数据框
a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
rep:重复函数,括号内为重复字符与次数
paste:连接两个字符串,括号要填两个待连接字符并指定分隔符(sep),没有分隔符就填sep = "";拼接字符串函数:
括号内行列名不用加引号,但是其他单元格中的字符串要加双引号
数字作为行列名要加引号
行raw
列column,简化为col
1.Reshape Data
gather(a,X1999,X2000,key = "year",value = "cases") 或 gather(a,year,cases,-country)
#-country的意思就是合并除country外剩下的列。
2.Handle Missing Values
处理丢失的数据。就是某些单元格有空值的情况。
三种处理方式:
(1).删除整行
(2).根据上下文(瞎)蒙一个
(3).同一列的空值填上同一个数。
X<-read.csv('doudou.txt')
在这里补充下csv的导入和导出方式。(默认参数好,学R没烦恼)
导入: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))
读取数据com.csv
com <- read.csv("com.csv")
expand
(列出每列值所有可能的组合)
pin2<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
expand(pin2,GeneID,SampleName,Expression)
出现了一个新表
4.split cells
把一列拆成两列,原列必须要有分隔符才行。
separate
:按列分割
separate_rows
:按行分割
unite
:分割完了再合并回去
学习体会
这一课的学习很不顺,有些地方看不懂,要琢磨一下。
简书这个网站,晚上需要休息吗?为什么一到十一点以后就不行了呢?