第36期 R语言!整洁数据全流程常用包介绍和汇总
第36期 R语言!整洁数据全流程常用包介绍和汇总
之前的第30期介绍R语言的整洁数据规范。接下来我我们学习一下通过哪些包可以获得整洁数据
本期介绍了R语言包括数据导入-数据整理-数据可视化全流程的常用包及具体实例
数据导入
我们可以通过多种不同的方式来存储您要使用的数据。有时信息存储在 Excel 电子表格中。其他时候,数据位于需要抓取的网站上的表格中。或者,在 CSV 文件中。每种类型的数据文件都有自己的结构,但 R 可以处理所有这些类型。然而,要做到这一点,需要熟悉一些不同的软件包。
readr: 用于快速高效地读取CSV和类似的分隔文本文件。示例:读取CSV文件。
library(readr) data <- read_csv("example.csv")
googlesheets4: 专门用于从Google Sheets中导入数据。示例:读取Google Sheets中的数据。
library(googlesheets4) sheet <- read_sheet("https://docs.google.com/spreadsheets/d/1d...")
readxl: 专门用于从Excel文件中读取数据,无需安装Microsoft Excel。示例:读取Excel文件。
library(readxl) data <- read_excel("example.xlsx")
googledrive: 用于访问和管理Google Drive上的文件。示例:列出Google Drive中的文件。
library(googledrive) drive_ls()
haven: 用于读取SPSS、Stata和SAS文件,使得这些统计软件的数据格式易于在R中使用。示例:读取SPSS文件。
library(haven) data <- read_spss("example.sav")
jsonlite & xml2: 分别用于处理JSON和XML格式的数据,这两种格式常用于网络数据交换。示例:解析JSON数据。
library(jsonlite) json_data <- fromJSON('{"name":"John", "age":30, "city":"New York"}')
rvest: 用于从网页上抓取数据,非常适合进行网页内容的数据挖掘。示例:从网页中提取数据。
library(rvest) webpage <- read_html("http://example.com") titles <- html_nodes(webpage, "h1") %>% html_text()
httr: 专门用于与网络API进行交互,特别是处理JSON数据时。示例:发送GET请求到API。
每个包的功能都专注于处理特定类型的数据源或数据格式,为数据科学和统计分析提供了极大的便利。
数据整理
数据整理是将杂乱无章的数据转换成一种格式,使之更加有序和易于分析。Tidyverse 提供了一系列的包来帮助完成这一任务:
dplyr: 这个包提供了一套一致的动词(如变异(mutate)、选择(select)、过滤(filter)、总结(summarise)和排列(arrange)),以帮助处理数据。例如,使用
filter()
从数据框中选择满足特定条件的行:library(dplyr) filtered_data <- your_data_frame %>% filter(your_condition)
tidyr: 主要用于将杂乱的数据整理为整洁的格式,其中每个变量是一列,每个观测是一行。例如,使用
gather()
函数将宽格式数据转换为长格式数据:library(tidyr) long_data <- wide_data %>% gather(key, value, -columns_to_exclude)
janitor: 这个包简化了清洁和管理数据的过程。例如,使用
clean_names()
将所有列名转换为小写并替换空格为下划线:library(janitor) clean_data <- your_data_frame %>% clean_names()
forcats: 主要用于简化R中因子类型数据的处理。例如,使用
fct_reorder()
根据另一列的值重新排序因子水平:library(forcats) reordered_data <- your_data_frame %>% mutate(your_factor = fct_reorder(your_factor, another_column))
stringr: 用于简化字符串处理,特别是与正则表达式结合使用。例如,使用
str_replace()
替换字符串中的模式:library(stringr) modified_data <- your_data_frame %>% mutate(your_column = str_replace(your_column, pattern, replacement))
lubridate: 使日期和时间的处理变得简单。例如,使用
ymd()
将年月日格式的字符串转换为日期对象:library(lubridate) date_data <- your_data_frame %>% mutate(date_column = ymd(date_column))
glue: 用于更简单地处理带解释的字符串字面量。例如,用
glue()
动态构建字符串:library(glue) text <- glue("Today is {Sys.Date()}")
skimr: 在数据整理完成后,用于快速汇总和查看数据框的结构。例如,使用
skim()
查看数据概况:library(skimr) skim(your_data_frame)
tidytext: 用于文本数据的分析和处理。例如,使用
unnest_tokens()
将文本列拆分为单词:library(tidytext) tidy_text <- your_data_frame %>% unnest_tokens(word, text_column)
purrr: 增强R的函数式编程能力,特别是用于处理向量和函数。例如,使用
map()
替代传统的for循环:
数据可视化
数据可视化是理解数据的重要步骤,Tidyverse 提供了多个包来帮助创建可视化:
ggplot2: 允许创建并定制各种图表。例如,使用
ggplot()
绘制散点图:library(ggplot2) ggplot(your_data_frame, aes(x = x_variable, y = y_variable)) + geom_point()
kableExtra: 用于创建复杂和定制化的表格。例如,使用
kable()
生成一个基本表格,然后用kableExtra
进行美化:library(kableExtra) kable(your_data_frame) %>% kable_styling()
ggrepel: 用于在 ggplot2 图表中添加避免重叠的文本标签。例如,使用
geom_text_repel()
在散点图中添加文本标签:library(ggrepel) ggplot(your_data_frame, aes(x = x_variable, y = y_variable)) + geom_point() + geom_text_repel(aes(label = label_column))
cowplot 和 patchwork: 分别用于改善和组合 ggplot2 图表。例如,使用
plot_grid()
将多个图组合在一起:library(cowplot) plot_grid(plot1, plot2, labels = "AUTO")
gganimate: 为 ggplot2 图表添加动画效果。例如,创建一个随时间变化的动态图表:
这些包提供了一系列强大的工具来处理和可视化数据,从而使数据分析更加高效和直观。
其它
内容来源:
电子书资源获取,公众号回复“231213”
[1]Wright C, Ellis S, Hicks S, et al. Tidyverse Skills for Data Science in R[J].