前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tidyverse补充

Tidyverse补充

作者头像
火星娃统计
发布2020-09-15 15:43:07
6000
发布2020-09-15 15:43:07
举报
文章被收录于专栏:火星娃统计火星娃统计

Tidyverse补充

sunqi
2020/8/13

概述

休息了几天,罪过

tidyverse中的长款数据转换函数,类比于之前的reshape2包中的melt和dcast函数

代码

代码语言:javascript
复制
rm(list=ls())
library(tidyverse)
library(patchwork)
# 建立示例数据框
df <- data.frame(
  Day = 1:5,
  type1 = c(0.6, 1.2, 1.4, 1.9, 2.2),
  type2 = c(0.5, 0.7, 0.9, 1.3, 1.8)
)
# 在绘图的过程中
# 尤其是ggplot函数,上述的宽数据格式无法满足绘图的需要
# 涉及分组绘图
# 对于type1和type2
# 因此需要长款转换
# 需要的函数
# pivot_longer 转换长
# pivot_wider 转换宽
long <- pivot_longer(df, 2:3,
  names_to = "type",#用于显示变量的名字
  values_to = "value"#用于显示值的名字
)
long %>% head()
代码语言:javascript
复制
## # A tibble: 6 x 3
##     Day type  value
##   <int> <chr> <dbl>
## 1     1 type1   0.6
## 2     1 type2   0.5
## 3     2 type1   1.2
## 4     2 type2   0.7
## 5     3 type1   1.4
## 6     3 type2   0.9
代码语言:javascript
复制
long<-df %>%
  pivot_longer(
  cols = -Day, # 这里去掉day,其实和2:3是一个意思
  names_to = "type",
  values_to = "value"
  ) %>% head()
# 此时间就可以直接绘图
long %>%
  ggplot(aes(x = Day, y = value, color = type)) +
  geom_line()
代码语言:javascript
复制
# 长数据转换宽数据
# 此时又回到了之前的数据
long %>%
  pivot_wider(
  names_from = "type",
  values_from = "value"
) %>% head()
代码语言:javascript
复制
## # A tibble: 3 x 3
##     Day type1 type2
##   <int> <dbl> <dbl>
## 1     1   0.6   0.5
## 2     2   1.2   0.7
## 3     3   1.4   0.9
代码语言:javascript
复制
# count函数
## 计数函数,类比table函数
iris %>% count(Species)
代码语言:javascript
复制
##      Species  n
## 1     setosa 50
## 2 versicolor 50
## 3  virginica 50
代码语言:javascript
复制
# 添加一列显示每个花卉的数目

iris %>%
  group_by(Species) %>%
  mutate(n = n()) %>%
  ungroup() %>%
  select(Species,n) %>%
  head()
代码语言:javascript
复制
## # A tibble: 6 x 2
##   Species     n
##   <fct>   <int>
## 1 setosa     50
## 2 setosa     50
## 3 setosa     50
## 4 setosa     50
## 5 setosa     50
## 6 setosa     50
代码语言:javascript
复制
# 同时还有更简单的方法

iris %>% add_count(Species) %>% head()
代码语言:javascript
复制
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species  n
## 1          5.1         3.5          1.4         0.2  setosa 50
## 2          4.9         3.0          1.4         0.2  setosa 50
## 3          4.7         3.2          1.3         0.2  setosa 50
## 4          4.6         3.1          1.5         0.2  setosa 50
## 5          5.0         3.6          1.4         0.2  setosa 50
## 6          5.4         3.9          1.7         0.4  setosa 50

结束语

不知道写点啥,就这样吧。

PEACE

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 火星娃统计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Tidyverse补充
    • 概述
      • 代码
        • 结束语
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档