tidyr包类似于上图成行成列的表数据是干净数据(tidy data),一般每一行表示一条观测记录,每一列表示一个字段(变量) tidyr包是用来操作tidy data的包,主要的功能有
数据变形(Reshape Data)数据变形(Reshape Data)可以重构数据形状,主要有gather()和spread()两个函数 gather()tidyr::gather(data, key, value, ..., na.rm=FALSE)
参数不太好理解,还是直接看下面的例子吧~ 构造实验数据 library(tibble) 将上图的table4a从左侧形态转为右侧形态, library(tidyr) gather(table4a, key="year", value="cases", '1999', '2000') spread()tidyr::spread(data, key, value) 构造实验数据table2 table2 <- tibble( 将上图的table2从左侧形态转为右侧形态 spread(table2, key=type, value=count) 处理缺失值
drop_na()tidyr::drop_na(data, ...) 剔除掉数据中的缺失值 构造实验数据 x <- tibble(x1=c("A", "B", "C", "D", "E"), drop_na(x, x2) fill()tidyr::fill(data, ..., direction=c("down", "up")) 将数据中的缺失值进行填充(填充的值是缺失值附近的数值) fill(x, x2) replace_na()tidyr::replace_na(data, replace=list(), ...) 将数据中的缺失值替换为别的值 replace_na(x, list(x2=2)) 分割数据分割数据(Split Cells)把一个单元格内的数据分为多个值。常用的函数有
separate()tidyr::separate(data, col, into, sep)
构造实验数据table3 table3 <- tibble( 将上图的table3从左侧形态转为右侧形态 separate(table3, col=rate, into=c("cases", "pop"), sep="/") separate_rows()tidyr::separate_rows(data, ..., sep)
将上图的table3从左侧形态转为右侧形态 separate_rows(table3, rate, sep='/') unite()tidyr::unite(data, col, ..., sep)
构造实验数据table5 table5 <- tibble( 将上图的table5从左侧形态转为右侧形态 unite(table5, col="year", century, year, sep="") R语言相关Python相关 |
|