美文网首页
R数据科学-2(tidyr)

R数据科学-2(tidyr)

作者: jamesjin63 | 来源:发表于2020-10-18 12:47 被阅读0次

R数据科学-2

是用于清洗数据的工具,如dplyr一样,其中每一列都是变量,每一行都是观察值,并且每个单元格都包含一个值。 “ tidyr”包含用于更改数据集的形状(旋转)和层次结构(嵌套和“取消嵌套”),将深度嵌套的列表转换为矩形数据框(“矩形”)以及从字符串列中提取值的工具。它还包括用于处理缺失值(隐式和显式)的工具。

今天就介绍以下在数据清洗工作时,经常会遇到三个问题:
`1. 宽数据变成长数据(ggplot画图常用)

  1. 长数据变成宽数据
  2. 根据值生成重复列数据
    `

这些都是为数据画图,或者分析做准备工作。以前是reshape包的内容,当然reshape可以做,但是现在tidyr 处理起来更简洁方便,快速。易于理解。

数据长宽转化

创建一个数据df,然后来进行数据长宽转化实例操作。


image.png

宽数据转成长数据,这里使用gather函数,gathe函数涉及三个参数

gather("key", "value", x, y, z)

library(tidyverse)

# creat data 
df=tibble(id=c(1:3),
          Shanghai=c(2,5,3),
          Beijing=c(12,23,16),
          Guangdong=c(7,3,6))
df
# A tibble: 3 x 4
     id Shanghai Beijing Guangdong
  <int>    <dbl>   <dbl>     <dbl>
1     1        2      12         7
2     2        5      23         3
3     3        3      16         6

## 1. long data
df_a=df %>% gather("Name","value",-id)

df_a
# A tibble: 9 x 3
     id Name      value
  <int> <chr>     <dbl>
1     1 Shanghai      2
2     2 Shanghai      5
3     3 Shanghai      3
4     1 Beijing      12
5     2 Beijing      23
6     3 Beijing      16
7     1 Guangdong     7
8     2 Guangdong     3
9     3 Guangdong     6

## 2. wide data
df_a %>% spread("Name",-id)
# A tibble: 3 x 4
     id Beijing Guangdong Shanghai
  <int>   <dbl>     <dbl>    <dbl>
1     1      12         7        2
2     2      23         3        5
3     3      16         6        3

宽数据转成长数据,这里使用spread函数,spread函数涉及2个参数

df %>% spread(key, value)

image.png

重复列变量

有时候会碰到,需要新增一列是重复该变量的多少次,如上述例子中,
上海id=1的有2个,然后重复shanghai2次,5次,3次,形成新增一列。
在tidyr中很简单的uncount函数就可以实现:
uncount(data, weights, .remove = TRUE, .id = NULL)

df_c=df_a %>% filter(!Name=="Beijing")
# Methods 1
df_c %>% uncount(value) %>% 
  rename(new=Name) 
# Methods 2
data.frame(new = rep(df_c$Name,df_c$value))
image.png

参考

  1. https://tidyr.tidyverse.org
  2. https://github.com/tidyverse/tidyr
  3. Manipulating, analyzing and exporting data with tidyverse

相关文章

  • 12-1 tidyr dplyr stringr

    tidyr dplyr stringr “R数据科学” R1:tidyr 核心函数 处理NA: R2:dply...

  • R数据科学-2(tidyr)

    R数据科学-2 是用于清洗数据的工具,如dplyr[https://www.jianshu.com/p/5d2f5...

  • R语言长短数据转换

    R数据格式转换tidyr包:reshape2的替代者,功能更纯粹R 学习笔记:tidyr 包整理数据的利器 gat...

  • 学习小组Day6笔记--郝志刚

    R语言学习 1 获得学习小抄 tidyr包的小抄 2 tidyr包功能 (1)数据框的变形(2)处理数据框中的空值...

  • 2019-01-19R包

    R包安装 R包小抄 tidyr包 数据框常识

  • 生信星球第12期 Day6-小梦想在努力

    继续学R! 1.前言 2.安装tidyr 3.数据框小常识 4.认识tidyr 5.reshape data 6....

  • 2

    数据来源:联合国人口数据库 过程:使用R语言、调用ggplot2、animation、dplyr、tidyr、xl...

  • 学习小组Day6 tidyr包 及时雨

    参考 生信星球 公众号教程 R包 tidyr 获得清洁数据 (1)数据框的变形(2)处理数据框中的空值(3)根据...

  • 学习小组Day6笔记--魏志辉

    学习内容 第一个R包--tidyr 准备工作 1 . 获取一个R包的小抄 2 . 初步了解tidyr 3 . 学习...

  • 学习小组Day6笔记--昌

    R包(tidyr)的使用 tidyr的功能 数据框的变形 处理数据框中的空值 根据一个表格衍生出其他表格 实现行或...

网友评论

      本文标题:R数据科学-2(tidyr)

      本文链接:https://www.haomeiwen.com/subject/dfqcmktx.html