学会获取一个包的小抄
方法1:去百度/谷歌XX小抄
方法2:找Rstudio的cheatsheet网站(网速好慢的)
一,新建数据框
a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))
数据框
这行代码中的函数
rep,重复,括号中填要重复的字符和重复次数。
paste,连接两个字符串,括号要填两个代连接字符并指定分隔符(sep),没有分隔符就填sep=“”
了解概念:
key-value--“键值对”,表示一种对应关系。“键”和“值”都是列名,如SampleName和Expression的对应。
二、认识Tidy Data(整齐数据)
比如原数据
图一
改变为
图二
后者是一种能够跨包使用的“统一”的数据格式
三、Tidyr函数中的gather和spread
gather函数使图一生成图二,spread相反
复现小抄
生成数据框a<data.frame(country=c("A","B","C"),"1999"=paste(c(0.7,37,212),"k"),"2000"=paste(c(2,80,213),"k"))
image.png
因为列名是数字,所以要在1999和2000上加双引号,否则会报错
结果显示出来是X1999和X2000(显示表格的时候,会自动在数字列名前面加上个x(大写的))故写列名的时候就不能按照小抄上面写
需要
可以解释成将列名X1999和X2000放到下面去
gather括号里的分别是:
数据框名,需合并的列名(两个),合并后的key列名,value列名。
其中,需合并的列名也可以列在最后(其实个顺序才是默认的),key=和value=也可以省略(我爱偷懒),如果按照上面小抄的命令括号里那个顺序,省略了就会报错。
结果
其中,合并前的列名如果比较多,可以用排除法来偷懒,在上图例子中可用
四、处理缺失值
三种处理方式:
(1).删除整行
(2).根据上下文(瞎)蒙一个
(3).同一列的空值填上同一个数。
drop_na():有空值的,整行删除掉
括号里填数据框名,依据的列名
drop_na(X,X2)
fill(),根据上一行的数值填充上
fill(X,X2)
replace_na(),空值填进去特定的一个数值
括号里填数据框名,要填的列名=要填的值
replace_na(X,list(X2=2))
五、分割
把一列拆成两列。
separate
:按列分割
separate_rows
:按行分割
unite
:分割完了再合并回去
举例
分隔符可以自己设定是什么,但必须要有