【r<-基础|分析】初学者学习tidyverse

tidyverse是一组处理与可视化R包的集合,其中ggplot2dplyr最广为人知。

核心包有以下一些:

  • ggplot2 - 可视化数据
  • dplyr - 数据操作语法,可以用它解决大部分数据处理问题
  • tidyr - 清理数据
  • readr - 读入表格数据
  • purrr - 提供一个完整一致的工具集增强R的函数编程
  • tibble - 新一代数据框
  • stringr - 提供函数集用来处理字符数据
  • forcats - 提供有用工具用来处理因子问题

有几个包没接触过,R包太多了,这些强力包还是有必要接触和学习下使用,碰到问题事半功倍。

安装tidyverse

install.packages("tidyverse")

导入:

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.2.1 --
## √ ggplot2 2.2.1     √ purrr   0.2.4
## √ tibble  1.4.2     √ dplyr   0.7.4
## √ tidyr   0.8.0     √ stringr 1.3.0
## √ readr   1.1.1     √ forcats 0.3.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

有用的函数

# tidyverse与其他包的冲突
tidyverse_conflicts()
# 列出所有tidyverse的依赖包
tidyverse_deps()
#获取tidyverse的logo
tidyverse_logo()
# 列出所有tidyverse包
tidyverse_packages()
# 更新tidyverse包
tidyverse_update()

载入数据

library(datasets)
#install.packages("gapminder")
library(gapminder)
attach(iris)

dplyr

过滤

filter()函数可以用来取数据子集。

iris %>% 
    filter(Species == "virginica") # 指定满足的行
##    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 1           6.3         3.3          6.0         2.5 virginica
## 2           5.8         2.7          5.1         1.9 virginica
## 3           7.1         3.0          5.9         2.1 virginica
## 4           6.3         2.9          5.6         1.8 virginica
## 5           6.5         3.0          5.8         2.2 virginica
## 6           7.6         3.0          6.6         2.1 virginica
## 7           4.9         2.5          4.5         1.7 virginica
## 8           7.3         2.9          6.3         1.8 virginica
## 9           6.7         2.5          5.8         1.8 virginica
## 10          7.2         3.6          6.1         2.5 virginica
## 11          6.5         3.2          5.1         2.0 virginica
## 12          6.4         2.7          5.3         1.9 virginica
## 13          6.8         3.0          5.5         2.1 virginica
## 14          5.7         2.5          5.0         2.0 virginica
## 15          5.8         2.8          5.1         2.4 virginica
## 16          6.4         3.2          5.3         2.3 virginica
## 17          6.5         3.0          5.5         1.8 virginica
## 18          7.7         3.8          6.7         2.2 virginica
## 19          7.7         2.6          6.9         2.3 virginica
## 20          6.0         2.2          5.0         1.5 virginica
## 21          6.9         3.2          5.7         2.3 virginica
## 22          5.6         2.8          4.9         2.0 virginica
## 23          7.7         2.8          6.7         2.0 virginica
## 24          6.3         2.7          4.9         1.8 virginica
## 25          6.7         3.3          5.7         2.1 virginica
## 26          7.2         3.2          6.0         1.8 virginica
## 27          6.2         2.8          4.8         1.8 virginica
## 28          6.1         3.0          4.9         1.8 virginica
## 29          6.4         2.8          5.6         2.1 virginica
## 30          7.2         3.0          5.8         1.6 virginica
## 31          7.4         2.8          6.1         1.9 virginica
## 32          7.9         3.8          6.4         2.0 virginica
## 33          6.4         2.8          5.6         2.2 virginica
## 34          6.3         2.8          5.1         1.5 virginica
## 35          6.1         2.6          5.6         1.4 virginica
## 36          7.7         3.0          6.1         2.3 virginica
## 37          6.3         3.4          5.6         2.4 virginica
## 38          6.4         3.1          5.5         1.8 virginica
## 39          6.0         3.0          4.8         1.8 virginica
## 40          6.9         3.1          5.4         2.1 virginica
## [到达getOption("max.print") -- 略过10行]]
iris %>% 
    filter(Species == "virginica", Sepal.Length > 6) # 多个条件用,分隔
##    Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 1           6.3         3.3          6.0         2.5 virginica
## 2           7.1         3.0          5.9         2.1 virginica
## 3           6.3         2.9          5.6         1.8 virginica
## 4           6.5         3.0          5.8         2.2 virginica
## 5           7.6         3.0          6.6         2.1 virginica
## 6           7.3         2.9          6.3         1.8 virginica
## 7           6.7         2.5          5.8         1.8 virginica
## 8           7.2         3.6          6.1         2.5 virginica
## 9           6.5         3.2          5.1         2.0 virginica
## 10          6.4         2.7          5.3         1.9 virginica
## 11          6.8         3.0          5.5         2.1 virginica
## 12          6.4         3.2          5.3         2.3 virginica
## 13          6.5         3.0          5.5         1.8 virginica
## 14          7.7         3.8          6.7         2.2 virginica
## 15          7.7         2.6          6.9         2.3 virginica
## 16          6.9         3.2          5.7         2.3 virginica
## 17          7.7         2.8          6.7         2.0 virginica
## 18          6.3         2.7          4.9         1.8 virginica
## 19          6.7         3.3          5.7         2.1 virginica
## 20          7.2         3.2          6.0         1.8 virginica
## 21          6.2         2.8          4.8         1.8 virginica
## 22          6.1         3.0          4.9         1.8 virginica
## 23          6.4         2.8          5.6         2.1 virginica
## 24          7.2         3.0          5.8         1.6 virginica
## 25          7.4         2.8          6.1         1.9 virginica
## 26          7.9         3.8          6.4         2.0 virginica
## 27          6.4         2.8          5.6         2.2 virginica
## 28          6.3         2.8          5.1         1.5 virginica
## 29          6.1         2.6          5.6         1.4 virginica
## 30          7.7         3.0          6.1         2.3 virginica
## 31          6.3         3.4          5.6         2.4 virginica
## 32          6.4         3.1          5.5         1.8 virginica
## 33          6.9         3.1          5.4         2.1 virginica
## 34          6.7         3.1          5.6         2.4 virginica
## 35          6.9         3.1          5.1         2.3 virginica
## 36          6.8         3.2          5.9         2.3 virginica
## 37          6.7         3.3          5.7         2.5 virginica
## 38          6.7         3.0          5.2         2.3 virginica
## 39          6.3         2.5          5.0         1.9 virginica
## 40          6.5         3.0          5.2         2.0 virginica
## [到达getOption("max.print") -- 略过1行]]

排序

arrange()函数用来对观察值排序,默认是升序。

iris %>% 
    arrange(Sepal.Length)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            4.3         3.0          1.1         0.1     setosa
## 2            4.4         2.9          1.4         0.2     setosa
## 3            4.4         3.0          1.3         0.2     setosa
## 4            4.4         3.2          1.3         0.2     setosa
## 5            4.5         2.3          1.3         0.3     setosa
## 6            4.6         3.1          1.5         0.2     setosa
## 7            4.6         3.4          1.4         0.3     setosa
## 8            4.6         3.6          1.0         0.2     setosa
## 9            4.6         3.2          1.4         0.2     setosa
## 10           4.7         3.2          1.3         0.2     setosa
## 11           4.7         3.2          1.6         0.2     setosa
## 12           4.8         3.4          1.6         0.2     setosa
## 13           4.8         3.0          1.4         0.1     setosa
## 14           4.8         3.4          1.9         0.2     setosa
## 15           4.8         3.1          1.6         0.2     setosa
## 16           4.8         3.0          1.4         0.3     setosa
## 17           4.9         3.0          1.4         0.2     setosa
## 18           4.9         3.1          1.5         0.1     setosa
## 19           4.9         3.1          1.5         0.2     setosa
## 20           4.9         3.6          1.4         0.1     setosa
## 21           4.9         2.4          3.3         1.0 versicolor
## 22           4.9         2.5          4.5         1.7  virginica
## 23           5.0         3.6          1.4         0.2     setosa
## 24           5.0         3.4          1.5         0.2     setosa
## 25           5.0         3.0          1.6         0.2     setosa
## 26           5.0         3.4          1.6         0.4     setosa
## 27           5.0         3.2          1.2         0.2     setosa
## 28           5.0         3.5          1.3         0.3     setosa
## 29           5.0         3.5          1.6         0.6     setosa
## 30           5.0         3.3          1.4         0.2     setosa
## 31           5.0         2.0          3.5         1.0 versicolor
## 32           5.0         2.3          3.3         1.0 versicolor
## 33           5.1         3.5          1.4         0.2     setosa
## 34           5.1         3.5          1.4         0.3     setosa
## 35           5.1         3.8          1.5         0.3     setosa
## 36           5.1         3.7          1.5         0.4     setosa
## 37           5.1         3.3          1.7         0.5     setosa
## 38           5.1         3.4          1.5         0.2     setosa
## 39           5.1         3.8          1.9         0.4     setosa
## 40           5.1         3.8          1.6         0.2     setosa
## [到达getOption("max.print") -- 略过110行]]

iris %>% 
    arrange(desc(Sepal.Length)) # 降序
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            7.9         3.8          6.4         2.0  virginica
## 2            7.7         3.8          6.7         2.2  virginica
## 3            7.7         2.6          6.9         2.3  virginica
## 4            7.7         2.8          6.7         2.0  virginica
## 5            7.7         3.0          6.1         2.3  virginica
## 6            7.6         3.0          6.6         2.1  virginica
## 7            7.4         2.8          6.1         1.9  virginica
## 8            7.3         2.9          6.3         1.8  virginica
## 9            7.2         3.6          6.1         2.5  virginica
## 10           7.2         3.2          6.0         1.8  virginica
## 11           7.2         3.0          5.8         1.6  virginica
## 12           7.1         3.0          5.9         2.1  virginica
## 13           7.0         3.2          4.7         1.4 versicolor
## 14           6.9         3.1          4.9         1.5 versicolor
## 15           6.9         3.2          5.7         2.3  virginica
## 16           6.9         3.1          5.4         2.1  virginica
## 17           6.9         3.1          5.1         2.3  virginica
## 18           6.8         2.8          4.8         1.4 versicolor
## 19           6.8         3.0          5.5         2.1  virginica
## 20           6.8         3.2          5.9         2.3  virginica
## 21           6.7         3.1          4.4         1.4 versicolor
## 22           6.7         3.0          5.0         1.7 versicolor
## 23           6.7         3.1          4.7         1.5 versicolor
## 24           6.7         2.5          5.8         1.8  virginica
## 25           6.7         3.3          5.7         2.1  virginica
## 26           6.7         3.1          5.6         2.4  virginica
## 27           6.7         3.3          5.7         2.5  virginica
## 28           6.7         3.0          5.2         2.3  virginica
## 29           6.6         2.9          4.6         1.3 versicolor
## 30           6.6         3.0          4.4         1.4 versicolor
## 31           6.5         2.8          4.6         1.5 versicolor
## 32           6.5         3.0          5.8         2.2  virginica
## 33           6.5         3.2          5.1         2.0  virginica
## 34           6.5         3.0          5.5         1.8  virginica
## 35           6.5         3.0          5.2         2.0  virginica
## 36           6.4         3.2          4.5         1.5 versicolor
## 37           6.4         2.9          4.3         1.3 versicolor
## 38           6.4         2.7          5.3         1.9  virginica
## 39           6.4         3.2          5.3         2.3  virginica
## 40           6.4         2.8          5.6         2.1  virginica
## [到达getOption("max.print") -- 略过110行]]

新增变量

mutate()可以更新或者新增数据框一列。

iris %>% 
    mutate(Sepal.Length = Sepal.Length * 10) # 将该列数值变成以mm为单位
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1             51         3.5          1.4         0.2     setosa
## 2             49         3.0          1.4         0.2     setosa
## 3             47         3.2          1.3         0.2     setosa
## 4             46         3.1          1.5         0.2     setosa
## 5             50         3.6          1.4         0.2     setosa
## 6             54         3.9          1.7         0.4     setosa
## 7             46         3.4          1.4         0.3     setosa
## 8             50         3.4          1.5         0.2     setosa
## 9             44         2.9          1.4         0.2     setosa
## 10            49         3.1          1.5         0.1     setosa
## 11            54         3.7          1.5         0.2     setosa
## 12            48         3.4          1.6         0.2     setosa
## 13            48         3.0          1.4         0.1     setosa
## 14            43         3.0          1.1         0.1     setosa
## 15            58         4.0          1.2         0.2     setosa
## 16            57         4.4          1.5         0.4     setosa
## 17            54         3.9          1.3         0.4     setosa
## 18            51         3.5          1.4         0.3     setosa
## 19            57         3.8          1.7         0.3     setosa
## 20            51         3.8          1.5         0.3     setosa
## 21            54         3.4          1.7         0.2     setosa
## 22            51         3.7          1.5         0.4     setosa
## 23            46         3.6          1.0         0.2     setosa
## 24            51         3.3          1.7         0.5     setosa
## 25            48         3.4          1.9         0.2     setosa
## 26            50         3.0          1.6         0.2     setosa
## 27            50         3.4          1.6         0.4     setosa
## 28            52         3.5          1.5         0.2     setosa
## 29            52         3.4          1.4         0.2     setosa
## 30            47         3.2          1.6         0.2     setosa
## 31            48         3.1          1.6         0.2     setosa
## 32            54         3.4          1.5         0.4     setosa
## 33            52         4.1          1.5         0.1     setosa
## 34            55         4.2          1.4         0.2     setosa
## 35            49         3.1          1.5         0.2     setosa
## 36            50         3.2          1.2         0.2     setosa
## 37            55         3.5          1.3         0.2     setosa
## 38            49         3.6          1.4         0.1     setosa
## 39            44         3.0          1.3         0.2     setosa
## 40            51         3.4          1.5         0.2     setosa
## [到达getOption("max.print") -- 略过110行]]
iris %>% 
    mutate(SLMn = Sepal.Length * 10) # 创建新的一列
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species SLMn
## 1            5.1         3.5          1.4         0.2     setosa   51
## 2            4.9         3.0          1.4         0.2     setosa   49
## 3            4.7         3.2          1.3         0.2     setosa   47
## 4            4.6         3.1          1.5         0.2     setosa   46
## 5            5.0         3.6          1.4         0.2     setosa   50
## 6            5.4         3.9          1.7         0.4     setosa   54
## 7            4.6         3.4          1.4         0.3     setosa   46
## 8            5.0         3.4          1.5         0.2     setosa   50
## 9            4.4         2.9          1.4         0.2     setosa   44
## 10           4.9         3.1          1.5         0.1     setosa   49
## 11           5.4         3.7          1.5         0.2     setosa   54
## 12           4.8         3.4          1.6         0.2     setosa   48
## 13           4.8         3.0          1.4         0.1     setosa   48
## 14           4.3         3.0          1.1         0.1     setosa   43
## 15           5.8         4.0          1.2         0.2     setosa   58
## 16           5.7         4.4          1.5         0.4     setosa   57
## 17           5.4         3.9          1.3         0.4     setosa   54
## 18           5.1         3.5          1.4         0.3     setosa   51
## 19           5.7         3.8          1.7         0.3     setosa   57
## 20           5.1         3.8          1.5         0.3     setosa   51
## 21           5.4         3.4          1.7         0.2     setosa   54
## 22           5.1         3.7          1.5         0.4     setosa   51
## 23           4.6         3.6          1.0         0.2     setosa   46
## 24           5.1         3.3          1.7         0.5     setosa   51
## 25           4.8         3.4          1.9         0.2     setosa   48
## 26           5.0         3.0          1.6         0.2     setosa   50
## 27           5.0         3.4          1.6         0.4     setosa   50
## 28           5.2         3.5          1.5         0.2     setosa   52
## 29           5.2         3.4          1.4         0.2     setosa   52
## 30           4.7         3.2          1.6         0.2     setosa   47
## 31           4.8         3.1          1.6         0.2     setosa   48
## 32           5.4         3.4          1.5         0.4     setosa   54
## 33           5.2         4.1          1.5         0.1     setosa   52
## [到达getOption("max.print") -- 略过117行]]

整合函数流:

iris %>% 
    filter(Species == "Virginica") %>% 
    mutate(SLMm = Sepal.Length) %>% 
    arrange(desc(SLMm))
## [1] Sepal.Length Sepal.Width  Petal.Length Petal.Width  Species     
## [6] SLMm        
## <0 行> (或0-长度的row.names)

汇总

summarize()函数可以让我们将很多变量汇总为单个的数据点。

iris %>% 
    summarize(medianSL = median(Sepal.Length))
##   medianSL
## 1      5.8
iris %>% 
    filter(Species == "virginica") %>% 
    summarize(medianSL=median(Sepal.Length))
##   medianSL
## 1      6.5

还可以一次性汇总多个变量

iris %>% 
    filter(Species == "virginica") %>% 
    summarize(medianSL = median(Sepal.Length),
              maxSL = max(Sepal.Length))
##   medianSL maxSL
## 1      6.5   7.9

group_by()可以让我们安装指定的组别进行汇总数据,而不是针对整个数据框

iris %>% 
    group_by(Species) %>% 
    summarize(medianSL = median(Sepal.Length),
              maxSL = max(Sepal.Length))
## # A tibble: 3 x 3
##   Species    medianSL maxSL
##   <fct>         <dbl> <dbl>
## 1 setosa         5.00  5.80
## 2 versicolor     5.90  7.00
## 3 virginica      6.50  7.90

iris %>% 
    filter(Sepal.Length>6) %>% 
    group_by(Species) %>% 
    summarize(medianPL = median(Petal.Length), 
              maxPL = max(Petal.Length))
## # A tibble: 2 x 3
##   Species    medianPL maxPL
##   <fct>         <dbl> <dbl>
## 1 versicolor     4.60  5.00
## 2 virginica      5.60  6.90

ggplot2

散点图

散点图可以帮助我们理解两个变量的数据关系,使用geom_point()可以绘制散点图:

iris_small <- iris %>% 
    filter(Sepal.Length > 5)

ggplot(iris_small, aes(x = Petal.Length,
                       y = Petal.Width)) + 
    geom_point()
img

额外的美学映射

  • 颜色
ggplot(iris_small, aes(x = Petal.Length,
                       y = Petal.Width,
                       color = Species)) + 
    geom_point()
img
  • 大小
ggplot(iris_small, aes(x = Petal.Length,
                       y = Petal.Width,
                       color = Species,
                       size = Sepal.Length)) + 
    geom_point()
img
  • 分面
ggplot(iris_small, aes(x = Petal.Length,
                       y = Petal.Width)) + 
    geom_point() + 
    facet_wrap(~Species)
img

线图

by_year <- gapminder %>% 
    group_by(year) %>% 
    summarize(medianGdpPerCap = median(gdpPercap))

ggplot(by_year, aes(x = year,
                    y = medianGdpPerCap)) +
    geom_line() + 
    expand_limits(y=0)
img

条形图

by_species <- iris %>%  
    filter(Sepal.Length > 6) %>% 
    group_by(Species) %>% 
    summarize(medianPL=median(Petal.Length))

ggplot(by_species, aes(x = Species, y=medianPL)) + 
    geom_col()
img

直方图

ggplot(iris_small, aes(x = Petal.Length)) + 
    geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
img

箱线图

ggplot(iris_small, aes(x=Species, y=Sepal.Length)) + 
    geom_boxplot()
img

资料来源:DataCamp

dplyr tidyverse ggplot

Related

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 工欲善其事,必先利其器。总结一下,方便多了。R语言还是很牛逼的,可以干很多事情。有一把顺手的刀还是很重要的。 0....
    Liam_ml阅读 4,600评论 1 60
  • 该部分学习内容来自《R for Data Science》。 这次我们学习可视化与处理数据来系统地探索数据——统计...
    王诗翔阅读 7,985评论 4 12
  • 2017年05月04日 我们在一起后度过的第一个生日,是dsy的生日。恰逢五四青年节。而我们也正值青春年少,阳光正...
    十月同学阅读 725评论 6 5
  • 闲坐廊亭,风吹青竹,远山鸟雀呼晴。正恰好、花开两岸,春色柔情。人与青山对语,两不厌,相望无声。何妨却,从鱼出游,款...
    释迦干屎橛阅读 288评论 0 2