Tidyverse简介

Tidyverse简介

被称为Tidyverse的R包集合是以合作和有效处理数据为目标而创建的。Tidyverse包是开源的,并由数据科学社区不断改进。数据科学家必须对tidyverse伞下的每一个包有基本的了解。所有八个软件包–Purr, ggplot2, dplyr, tidyr, stringr, tibble, readr, and forcats–将被深入介绍。

Tidyverse套餐

包装名称 使用方法
purrr 用于功能编程
ggplot2 用于创建图形
dplyr 用于数据操作
tidyr 提供函数来创建整洁的数据
stringr 提供处理字符数据的功能
tibble 提供坚固的工作台系统
readr 提供一个快速的方法来导入数据
f或者cats 提供解决因子的常见问题的工具

安装Tidyverse

在进一步行动之前,我们需要在R中安装tidyverse包。你可以使用CRAN中的以下命令来安装这个包—

install.packages("tidyverse")

上面提到的所有tidyverse软件包都已安装。不需要单独安装这些软件包。

导入tidyverse

要将tidyverse导入到你的R脚本中,你可以使用library()函数,并将tidyverse包作为参数传入 —

library("tidyverse")

读取Tidyverse中的数据

R中的 “readr “包允许我们在以read%和write%开头的函数的帮助下,从不同的文件格式中读取和写入文件。这些函数的工作速度非常快,并能顺利处理有问题的头文件名。

这些功能列举如下 –

Function 工作
read_csv() 与分号或逗号一起使用
read_csv2() 与分号或逗号一起使用
read_delim() 与一般分离器一起工作
read_table() 在含有数据的空白处工作

示例

让我们看一个例子,说明R中read_csv()函数的工作原理

# Import library
library("tidyverse")

# Import a CSV file
myFile <- read_csv("https://people.sc.fsu.edu/~jburkardt/data/csv/addresses.csv")

# Print the file
myFile

输出

  John                      Doe        `120 jefferson st.`    River…¹  NJ     `08075`
  <chr>                     <chr>      <chr>                  <chr>    <chr>  <chr>  
1 "Jack"                    McGinnis   "220 hobo Av."         Phila    PA     09119  
2 "John "Da Man""           Repici     "120 Jefferson St."    Rivers…  NJ     08075  
3 "Stephen"                 Tyler      "7452 Terrace "At t…   SomeTo…  SD     91234  
4  NA                       Blankman   NA                     SomeTo…  SD     00298  
5 "Joan "the bone", Anne"   Jet        "9th, at Terrace plc"  Desert…  CO     00123  

Tidyverse中的数据处理

dplyr软件包

dplyr包允许我们有效地处理表格数据。它为我们提供了一些动词函数,如select(),用于根据start_with()或contains()函数传递的一些条件提取特定列。

示例

请看下面的程序,它说明了这些函数的工作原理

library(dplyr)

# Create a data frame
dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
   Physics = c(98, 87, 91, 94),
   Chemistry = c(93, 84, 93, 87),
   Mathematics = c(91, 86, 92, 83) )
# Create a data frame
print(dataframe)

输出

       Name Physics Chemistry Mathematics
1 Bhuwanesh      98        93          91
2      Anil      87        84          86
3       Jai      91        93          92
4    Naveen      94        87          83

使用starts_with()函数只打印 “Ph “数据—。

library(dplyr)

# Create a data frame
dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
Physics = c(98, 87, 91, 94),
Chemistry = c(93, 84, 93, 87),
Mathematics = c(91, 86, 92, 83) )
print(select(dataframe, starts_with("Ph")))

输出

  Physics
1      98
2      87
3      91
4      94

让我们打印所有包含 “雾 “的东西-

library(dplyr)

# Create a data frame
dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
Physics = c(98, 87, 91, 94),
Chemistry = c(93, 84, 93, 87),
Mathematics = c(91, 86, 92, 83) )
print(select(dataframe, contains("mist")))

输出

  Chemistry
1        93
2        84
3        93
4        87

正如你在输出中看到的,以 “Ph “开头并包含 “mist “的列名已经被提取出来。

summary()函数

这个函数产生一个数据集的摘要。

print(summary(iris))

输出

  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
       Species  
 setosa    :50  
 versicolor:50  
 virginica :50  

summary()函数已经产生了虹膜模型的摘要。

filter()函数

这个函数用于挑选满足特定标准的数据。例如,考虑以下程序,它显示了数学分数在90和93之间的数据——。

示例

library(dplyr)

# Create dataframe
dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
Physics = c(98, 87, 91, 94),
Chemistry = c(93, 84, 93, 87),
Mathematics = c(91, 86, 92, 83) )

# Display
print(dataframe %>% filter(Mathematics > 90 & Mathematics < 94))

输出

       Name Physics Chemistry Mathematics
1 Bhuwanesh      98        93          91
2       Jai      91        93          92

arrange()函数

该函数用于在特定列的基础上排列数据集。例如,考虑以下程序,根据物理分数的排序显示数据集——。

示例

library(dplyr)

dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
Physics = c(98, 87, 91, 94),
Chemistry = c(93, 84, 93, 87),
Mathematics = c(91, 86, 92, 83) )

# Display the data
print(arrange(dataframe, Physics))

输出

       Name Physics Chemistry Mathematics
1      Anil      87        84          86
2       Jai      91        93          92
3    Naveen      94        87          83
4 Bhuwanesh      98        93          91

重命名()函数

该函数用于重命名数据框架中的一个列。第一个参数对应的是新名称,等号后的第二个参数对应的是旧名称。例如,考虑下面的程序,将化学列重命名为CHEMISTRY –

示例

library(dplyr)

dataframe <- data.frame( Name = c("Bhuwanesh", "Anil", "Jai", "Naveen"),
Physics = c(98, 87, 91, 94),
Chemistry = c(93, 84, 93, 87),
Mathematics = c(91, 86, 92, 83) )

# Display the dataset
# after renaming a column
print(rename(dataframe, CHEMISTRY = Chemistry))

输出

       Name Physics CHEMISTRY Mathematics
1 Bhuwanesh      98        93          91
2      Anil      87        84          86
3       Jai      91        93          92
4    Naveen      94        87          83

Tidyverse中的数据可视化

ggplot2软件包

ggplot2包是一个专门用于数据可视化的开源包。这是由Hardley Wickham设计的一个强大的包。这个包为我们提供了各种功能。一个重要的函数是ggplot()。这个函数显示了一个数据集的可视化数据

示例

library(ggplot2)

# Plot the data visualization
ggplot(iris, 
aes(x = Sepal.Length, y = Sepal.Width, col = Petal.Length)
) + geom_point()

输出

Tidyverse简介

正如你在输出中看到的,ggplot()函数已经绘制了它的可视化。

用purrr包进行函数编程

purrr包用于在R中实现函数式编程。 purrr包为我们提供了map_()系列函数,利用它我们可以实现函数式编程,获得与for和while循环相同的结果。

让我们来讨论其中的map()函数。这是最基本的函数。它接受一个向量和一个函数作为参数,然后为向量中的每个元素调用该函数。

示例

library("purrr")

myVector <- c(8, 3, 7, 2, 11, 20)

addByThree <- function(x) + 3

print(map(myVector, addByThree))

输出

[[1]]
[1] 3

[[2]]
[1] 3

[[3]]
[1] 3

[[4]]
[1] 3

[[5]]
[1] 3

[[6]]
[1] 3

正如你在上面的输出中所看到的,在给定向量的所有元素中加入3后,产生了一个列表。

用stringr包进行字符串操作

Stringr包用于在R中进行字符串操作,它提供以string%开头的函数。它最常用的函数是str_replace()和str_length()。str_replace()函数将一个模式或字符串替换成另一个字符串。让我们来看看下面的程序,它说明了str_replace()函数的工作原理

示例

library("stringr")

# Create a list of strings
myList <- c("tutorialspoint", "pointer", "pointable")

# Replace the string equal to "point"
# with “Point”
print(str_replace(myList, "point", "Point"))

输出

[1] "tutorialsPoint" "Pointer"        "Pointable"     

正如你在输出中看到的,包含 “point “的字符串已经被替换为 “Point”。

示例

让我们考虑另一个例子

library("stringr")

myString = "Bhuwanesh Nainwal"

# Replace if string starts with "Bhuwanesh"
print(str_replace(myString, "^Bhuwanesh", "Harshit"))

# Replace if string ends with "Nainwal"
print(str_replace(myString, "Nainwal$", ""))

str_length(myString)

输出

[1] "Harshit Nainwal"
[1] "Bhuwanesh "
17

正如你在输出中看到的,以 “Bhuwanesh “开头的字符串被替换为 “Harshit”,以 “Nainwal “结束的字符串被替换为””。

str_length()函数用于用另一个字符串替换一个模式或字符串。

让我们看看下面的程序,它说明了str_length()函数的工作原理

示例

library("stringr")
myList <- c("tutorialspoint", "pointer", "pointable")
print(str_length(myList))

输出

[1] 14  7  9

结论

在本教程中,我们讨论了包的宇宙,即tidyverse。我们讨论了这些包如何工作,并对它们进行了说明。本教程肯定有助于你提高你在数据科学领域的知识。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程