R语言 Tidyverse包

R语言 Tidyverse包

当用 R 语言处理数据科学时,Tidyverse包是你最好的朋友!这些Tidyverse包是专为数据科学设计的,具有共同的设计理念。这些Tidyverse包是专门为数据科学设计的,具有共同的设计理念。它们包括数据科学工作流程中需要的所有包,从数据探索到数据可视化。例如,readr用于数据导入,tibble和tidyr帮助整理数据,dplyr和stringr有助于数据转换,ggplot2对数据可视化至关重要。

什么是R语言中的Tidyverse包?

R中的Tidyverse包

Tidyverse有八个核心软件包,即本文提到的 ggplot2、dplyr、tidyr、readr、purrr、tibble、stringrforcats 。所有这些包都是通过install.packages(“tidyverse”)命令一次性自动加载的。除了这些包之外,Tidyverse还有一些特殊的包,它们不是自动加载的,而是需要自己调用的。这些包括用于关系数据库的DBI。用于网络API的httr,用于网络爬虫的rvest,等等。现在,让我们看看Tidyverse的核心包,并了解更多关于它们的信息。

下面是R中的Tidyverse包

  1. 数据可视化和探索
  • ggplot2
    1. 数据处理和转换
  • dplyr

  • tidyr
  • stringr
  • forcats

    1. 数据导入和管理
  • tibble

  • readr

    1. 功能性编程
  • purrr

数据可视化和探索

1. ggplot2 :

ggplot2是一个基于The Grammar of Graphics的R数据可视化库。ggplot2可以使用高级API创建数据可视化,如条形图、饼图、直方图、散点图、误差图等。它还允许你在单个可视化中添加不同类型的数据可视化组件或层。一旦ggplot2被告知哪些变量要映射到图中的哪些美学,它就会完成剩下的工作,这样用户就可以专注于解释可视化,而在创建可视化时花费更少的时间。但这也意味着不可能在ggplot2中创建高度定制的图形。但在RStudio社区和Stack Overflow中有很多资源,可以在需要时提供ggplot2方面的帮助。

如果你想安装ggplot2,最好的方法是使用安装tidyverse。

install.packages("tidyverse")
R

或者,你可以直接用以下方法安装ggplot2。

install.packages("ggplot2")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/ggplot2")
R

例子

我们将使用6个不同的数据点来绘制柱状图,然后借助于ais函数中的填充参数,我们将在R编程语言中对柱状图应用默认的颜色。

# load the library
library("ggplot2")
 
# create the dataframe with letters and numbers
gfg < -data.frame(
    x=c('A', 'B', 'C', 'D', 'E', 'F'),
    y=c(4, 6, 2, 9, 7, 3))
 
# display the bar
ggplot(gfg, aes(x, y, fill=x)) + geom_bar(stat="identity")
R

输出

什么是R语言中的Tidyverse包?

数据处理和转换

1. dplyr :

dplyr是R语言中非常流行的数据处理库。它有五个重要的函数,与group_by()函数自然结合,可以帮助分组执行这些函数。这些函数包括mutate()函数,它可以添加新的变量,这些变量是现有变量的函数;select()函数,根据变量的名称来选择变量;filter()函数,根据变量的值来挑选;summaryise()函数,将多个值缩减为一个摘要;and arrange()函数,安排行的顺序。 如果你想安装dplyr,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse")
R

或者,你可以直接使用安装dplyr。

install.packages("dplyr")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/dplyr")
R

例子

library(dplyr)
 
print(starwars %>% filter(species == "Droid"))
R

输出

# A tibble: 6 x 14
  name   height  mass hair_color skin_color  eye_color birth_year sex   gender  
  <chr>   <int> <dbl> <chr>      <chr>       <chr>          <dbl> <chr> <chr>   
1 C-3PO     167    75 <NA>       gold        yellow           112 none  masculi~
2 R2-D2      96    32 <NA>       white, blue red               33 none  masculi~
3 R5-D4      97    32 <NA>       white, red  red               NA none  masculi~
4 IG-88     200   140 none       metal       red               15 none  masculi~
5 R4-P17     96    NA none       silver, red red, blue         NA none  feminine
6 BB8        NA    NA none       none        black             NA none  masculi~
# ... with 5 more variables: homeworld <chr>, species <chr>, films <list>,
#   vehicles <list>, starships <list>
R

2. tidyr :

tidyr是R语言中的一个数据清理库,有助于创建整洁的数据。整洁的数据意味着所有的数据单元都有一个单一的值,每一个数据列都是一个变量,数据行是一个观察值。这种整洁的数据是tidyverse的主要内容,它确保了更多的时间花在数据分析和从数据中获取价值上,而不是不断地清洗数据和修改工具来处理不整洁的数据。tidyr中的功能大致分为五类,即在长形和宽形之间改变数据的Pivoting,改变分组数据的Nesting,使一个组成为具有嵌套数据框架的单行,拆分字符列,然后合并它们,将嵌套列表转换为整洁的二进制,以及将隐性缺失值转换为显性值。如果你想安装tidyr,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse")
R

或者,你可以直接使用安装tidyr。

install.packages("tidyr")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/tidyr")
R

例子

tidr中的gather()函数将获取多个列,并将其折叠成键值对,根据需要重复所有其他列。

# load the tidyr package
library(tidyr)
 
n = 10
# creating a data frame
tidy_dataframe = data.frame(
                    S.No = c(1:n),
                    Group.1 = c(23, 345, 76, 212, 88,
                                199, 72, 35, 90, 265),
                    Group.2 = c(117, 89, 66, 334, 90,
                            101, 178, 233, 45, 200),
                    Group.3 = c(29, 101, 239, 289, 176,
                                320, 89, 109, 199, 56))
 
# print the elements of the data frame
print(head(tidy_dataframe))
 
 
# using gather() function on tidy_dataframe
long <- tidy_dataframe %>%
            gather(Group, Frequency,
                Group.1:Group.3)
 
# print the data frame in a long format
print(head(long))
R

输出

  S.No Group.1 Group.2 Group.3
1    1      23     117      29
2    2     345      89     101
3    3      76      66     239
4    4     212     334     289
5    5      88      90     176
6    6     199     101     320
  S.No   Group Frequency
1    1 Group.1        23
2    2 Group.1       345
3    3 Group.1        76
4    4 Group.1       212
5    5 Group.1        88
6    6 Group.1       199
R

3.Stringr:

stringr是一个库,有许多用于数据清理和数据准备任务的功能。它也是为处理字符串而设计的,并有许多函数使这一过程变得简单。stringr建立在stringi之上,而stringi是一个国际统一码C库。因此,如果有任何你想使用但在stringr中找不到的函数,那么最好的地方就是stringi。这也意味着,一旦你掌握了stringr,stringi的使用就不那么困难了,因为这两个包都有类似的约定。stringr中的所有函数都以str开头,它们接受一个字符串向量作为其第一个参数。其中一些函数包括str_detect(), str_extract(), str_match(), str_count(), str_replace(), str_subset(),等等。 如果你想安装stringr,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse")
R

或者你可以直接从CRAN中安装stringr,使用。

install.packages("stringr")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/stringr")
R

例子

# R program for finding length of string
 
# Importing package
library(stringr)
 
# Calculating length of string   
str_length("hello")
R

输出

5
R

4.Forcats

forcats是一个R库,主要是处理与向量有关的问题。这些向量是有一套固定的可能取值的变量,这些值是事先就知道的。所以预测处理的问题包括改变向量中的值的顺序,重新排序向量等。forcats中的一些函数是fct_relevel(),它通过手工对向量进行排序,fct_reorder()通过另一个变量对因子进行排序,fct_infreq()通过频率值对因子进行排序等等。如果你想安装forcats,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse")
R

或者你可以直接从使用中安装forcats。

install.packages("forcats")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/forcats")
R

例子

library(forcats)
library(dplyr)
library(ggplot2)
 
print(head(starwars %>% filter(!is.na(species))
           %>% count(species, sort = TRUE)))
R

输出

# A tibble: 6 x 2
  species      n
  <chr>    <int>
1 Human       35
2 Droid        6
3 Gungan       3
4 Kaminoan     2
5 Mirialan     2
6 Twi'lek      2
R

数据导入和管理

1. readr

这个库提供了一个简单而快速的方法来读取矩形数据,如文件格式tsv, csv, delim, fwf等。readr可以使用一个解析整个文件的函数和另一个专注于特定列的函数来解析许多不同类型的数据。这个列规范定义了将该列中的数据从字符向量转换为最适合的数据类型的方法。在大多数情况下,这是 readr 自动完成的。 readr 可以使用不同的函数读取不同种类的文件格式,即 read_csv() 用于逗号分隔的文件,read_tsv() 用于标签分隔的文件,read_table() 用于表格文件,read_fwf() 用于固定宽度的文件,read_delim() 用于分隔文件,以及,read_log() 用于网页日志文件。如果你想安装readr,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse"). 
R

或者,你可以直接用以下方式安装readr。

install.packages("readr").
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/readr")
R

例子

用readr库读取文件。

# R program to read text file
# using readr package
 
# Import the readr library
library(readr)
 
# Use read_tsv() to read text file
myData = read_tsv("geeksforgeeks.txt", col_names = FALSE)
print(myData)
R

输出

# A tibble: 1 x 1
  X1                                  

1 A computer science portal for geeks.
R

2.tibble

tibble是data.frame的一种形式,它包括了其中有用的部分,而抛弃了不太重要的部分。所以tibble不会像data.frame那样改变变量的名称或类型,也不会做部分匹配,但它们能更快地将问题暴露出来,例如当一个变量不存在时。因此,使用Tibbles的代码比以前要干净和有效得多。Tibbles也更容易用于包含更复杂对象的更大的数据集,部分原因是增强了print()方法。你可以使用tibble()函数从列向量创建新的tibbles,你也可以使用tribble()函数逐行创建一个tibble。如果你想安装tibble,最好的方法是用以下方法安装tidyverse。

install.packages("tidyverse"):
R

或者,你可以直接使用Tibble安装。

install.packages("tibble")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/tibble")
R

例子

library(tibble)
data <- data.frame(a = 1:3, b = letters[1:3],
                   c = Sys.Date() - 1:3)
print(data)
R

输出

  a b          c
1 1 a 2021-11-24
2 2 b 2021-11-23
3 3 c 2021-11-22
R

功能性编程

1.purrr

Purrr是一套详细的函数和向量工具,它主要用于管理R中的函数式编程。一个很好的例子是map()函数,它被用来取代多个使代码复杂和混乱的for循环,变成更简单的代码,易于阅读。除此之外,所有的purrr函数都是类型稳定的,这意味着它们要么返回宣传的输出类型,如果不可能,则会给出一个错误。如果你想安装purrr,最好的方法是使用tidyverse安装。

install.packages("tidyverse")
R

或者你可以直接使用purrr安装。

install.packages("purrr")
R

你也可以使用GitHub安装开发版本。

devtools::install_github("tidyverse/purrr")
R

例子

library(purrr)
 
mtcars %>%
  split(.$cyl) %>% # from base R
  map(~ lm(mpg ~ wt, data = .)) %>%
  map(summary) %>%
  map_dbl("r.squared")
R

输出

**4**
0.50863259632314
**6**
0.464510150550548
**8**
0.422965536496112
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册