生信星球培训第五期

整齐数据

2018-09-19  本文已影响4人  李其龙_ec81

整齐数据

Hadley Wickham对于整齐数据的定义

  1. 每个变量必须有自己的列
  2. 每个观察(测量值)必须有自己的行
  3. 每个值都必须有自己的位置

我对整齐数据的一些理解

  1. 有效缺失和隐藏缺失被标注
  2. 变量可以是计算,但是要具体标注
  3. 变量名称不用值来表示
  4. 多重变量不要储存于一个列中

参考文件
Cleaning and visualizing genomic data: a case study in tidy analysis
http://varianceexplained.org/r/tidy-genomics/

下面我将列出我认为较为关键的整齐数据处理函数及其如何作用

  1. gather函数(可以使用内置数据集table1-3尝试)
    例1
    列名称包括 country 1999 2000
    我想要把1999列和2000列合并成一列名称为year,把1999及2000列下的测量值合并在一起重命名为cases。
gather(data,'1999','2000',key="year",value="cases")

gather是一种长转宽的函数,也就是=转变成||...hhh...好鬼畜

与gather函数相反的是spread函数

spread(data,key="year",value="cases")
  1. separate函数

table3

A tibble: 6 x 3

country year rate
<chr> <int> <chr>
Afghanistan 1999 745/19987071

separate(table3,rate ,into=c("cases","population"),convert=T,sep="|")

拆分table3数据中的rate变量,拆分为cases和population,间隔符为|

unite()函数与separate函数正好相反,是一个捏在一起的函数

3.缺失值

缺失值像一个蠕虫,哗哗的侵蚀你的计算数据
在前面的学习中我们已经学会了如何排除缺失值,然而有一些时候我们不能排除缺失值
那么应该用三种办法

  1. 删除缺失值所在的行drop_na函数
  2. 根据上下文写一个一样的 fill函数
  3. 同一列的空值填一个一样的 replace_na函数

书中使用一个spread+gather函数有效的除去了缺失值也不失为一个好的办法
还有模型补缺的方法比较上述方法精确很多,但是也有适用条件。

complete函数可以查看列中的缺失值

上一篇 下一篇

猜你喜欢

热点阅读