dplyr、tidyverse和ggplot2初探

news/2024/10/4 19:21:58/文章来源:https://blog.csdn.net/weixin_44913294/article/details/142170448

dplyr、tidyverse 和 ggplot2 之间有紧密的联系,它们都是 R 语言中用于数据处理和可视化的工具,且都源于 Hadley Wickham 的工作。它们各自有不同的功能,但可以无缝协作,帮助用户完成从数据处理到数据可视化的工作流。以下是它们之间的关系和区别:

  1. ggplot2:
    功能:ggplot2 是一个 数据可视化 包,用于创建各种类型的图表。它是基于 图形语法(Grammar of Graphics)的理念,允许用户灵活地创建自定义图表。
    用途:ggplot2 主要用于数据的可视化展示,包括散点图、折线图、柱状图、箱线图等。
    示例:
library(ggplot2)# 使用 ggplot2 绘制散点图
ggplot(mtcars, aes(x = mpg, y = hp)) + geom_point() +ggtitle("Scatter plot of mpg vs hp")
  1. dplyr:
    功能:dplyr 是一个专门用于 数据操作和处理 的包。它提供了简洁的函数和语法,特别适合处理和变换数据框。它的主要函数包括:
    filter():按条件筛选数据。
    select():选择数据的列。
    mutate():添加或修改列。
    summarize():汇总数据。
    arrange():对数据进行排序。
    用途:dplyr 用于高效、直观地操作数据集,特别适合数据清理、变换和汇总。
    示例:
library(dplyr)# 使用 dplyr 对数据进行操作
mtcars %>%filter(mpg > 20) %>%select(mpg, hp) %>%arrange(desc(hp))
  1. tidyverse:
    功能:tidyverse 是一个 R 语言中的生态系统,由一系列功能强大的 R 包组成,用于处理数据、清理数据、分析数据和可视化数据。tidyverse 的核心理念是“整洁数据”(Tidy Data),即数据应该被组织成一个标准化的结构,每列代表一个变量,每行代表一个观测值。

用途:tidyverse 是一个 集合包,包括多个用于数据科学的 R 包,所有这些包都遵循一致的设计原则和数据结构。tidyverse 中最常用的包包括:

ggplot2(数据可视化)
dplyr(数据操作)
tidyr(数据整理)
readr(数据输入/输出)
tibble(增强的 data.frame)
purrr(函数式编程)
示例:

# 加载tidyverse包(包括ggplot2、dplyr等)
library(tidyverse)# 整合数据处理和可视化
mtcars %>%filter(mpg > 20) %>%ggplot(aes(x = mpg, y = hp)) +geom_point()

三者之间的关系:
ggplot2 和 dplyr 都是 tidyverse 生态系统的一部分。它们各自专注于不同的任务,但共同遵循了整洁数据的理念,且无缝集成。
ggplot2 用于 数据可视化。
dplyr 用于 数据处理。
tidyverse 是一个集合包,包含了 ggplot2、dplyr 等工具,提供完整的 数据科学工作流。
整合性:你可以先使用 dplyr 对数据进行筛选、转换、汇总等操作,然后直接用 ggplot2 进行可视化。它们共享相同的“整洁数据”结构,因此在不同包之间传递数据非常方便。
例如,dplyr 和 ggplot2 的结合:

library(tidyverse)# 使用 dplyr 处理数据,然后用 ggplot2 可视化
mtcars %>%filter(mpg > 20) %>%        # 用 dplyr 筛选数据ggplot(aes(x = mpg, y = hp)) +  # 用 ggplot2 绘制散点图geom_point() +ggtitle("Scatter plot of mpg vs hp for cars with mpg > 20")

总结:
ggplot2 专注于 数据可视化。
dplyr 专注于 数据处理和操作。
tidyverse 是一个 集合包,包含 ggplot2、dplyr 和其他包,用于完成整个数据分析工作流,从数据整理到可视化。
这三者结合起来,可以为数据科学工作提供极大的便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/443424.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流动性质押协议 Drop:DeFi 新一轮革新

近年来,去中心化金融(DeFi)领域经历了迅猛的增长和创新,而其中一项重要的发展便是流动性质押协议的兴起。在传统的区块链网络中,用户为了参与网络的验证过程和维护网络安全,通常需要将加密资产锁定在区块链…

极验3代前两个参数w逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解…

关于STM32项目面试题01:电源篇

博客的风格是:答案一定不能在问题的后面,要自己想、自己背;回答都是最精简、最精简、最精简,可能就几个字,你要自己自信的展开。 面试官01:说说你知道的开关电源的拓扑结构? 面试官02&#xff1…

带你如何使用CICD持续集成与持续交付

目录 一、CICD是什么 1.1 持续集成(Continuous Integration) 1.2 持续部署(Continuous Deployment) 1.3 持续交付(Continuous Delivery) 二、git工具使用 2.1 git简介 2.2 git的工作流程 2.3 部署g…

代码随想录算法训练营第57天|卡码网 53. 寻宝 prim算法精讲和kruskal算法精讲

1. prim算法精讲 题目链接:https://kamacoder.com/problempage.php?pid1053 文章链接:https://www.programmercarl.com/kamacoder/0053.寻宝-prim.html prim算法 是从节点的角度 采用贪心的策略 每次寻找距离 最小生成树最近的节点 并加入到最小生成树中…

大模型笔记03--快速体验dify

大模型笔记03--快速体验dify 介绍部署&测试部署 dify测试dify对接本地ollama大模型对接阿里云千问大模型在个人网站中嵌入dify智能客服 注意事项说明 介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)…

Qt --- 信号和信号槽

前言 Linux信号Signal,系统内部的通知机制,进程间通信方式。 信号源:谁发的信号。 信号的类型:哪种类别的信号。 信号的处理方式:注册信号处理函数,在信号被触发的时候自动调用执行。 Qt中的信号和Lin…

每日OJ题_牛客_数组中两个字符串的最小距离

目录 牛客_数组中两个字符串的最小距离 解析代码 牛客_数组中两个字符串的最小距离 数组中两个字符串的最小距离__牛客网 给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null&…

加密

一、加密 加密运算需要两个输入:密钥和明文 解密运算也需要两个输入:密钥和密文 密文通常看起来都是晦涩难懂、毫无逻辑的,所以我们一般会通过传输或者存储密文来保护私密数据,当然,这建立在一个基础上,…

Rust练手项目,写个有趣的小工具定时从一言网获取一段有趣的话并推送通知

Rust练手项目,写个有趣的小工具 代码 继续练习Rust, 写个小工具定时从一言网获取一段有趣的话并提示,如下 练习以下Rust点 并发编程 Mutex, Arc指针使用HTTP请求Windows Gui 代码 Cargo.toml [package] name "funny_word" edition "20…

MATLAB 可视化基础:绘图命令与应用

目录 1. 绘制子图1.1基本绘图命令1.2. 使用 subplot 函数1.3. 绘图类型 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)2.1. 极坐标图2.3. 隐函数的绘制 3.总结 在数据分析和科学计算中,数据可视化是理解和解释结果的关键工具。今天,我将…

CefSharp_Vue交互(Element UI)_WinFormWeb应用(2)---置顶和取消置顶(含示例代码)

一、预览 获取winform的置顶参数,和设置置顶参数 1.1 置顶(默认不置顶) 1.2 示例代码

vscode中如何配置c/c++环境

“批判他人总是想的太简单 剖析自己总是想的太困难” 文章目录 前言文章有误敬请斧正 不胜感恩!一、准备工作二、安装 VSCode 插件三、配置 VSCode1. 配置编译任务(tasks.json)2. 配置调试器(launch.json) 四、运行和调…

Layout 布局组件快速搭建

文章目录 设置主题样式变量封装公共布局组件封装 Logo 组件封装 Menu 菜单组件封装 Breadcrumb 面包屑组件封装 TabBar 标签栏组件封装 Main 内容区组件封装 Footer 底部组件封装 Theme 主题组件 经典布局水平布局响应式布局搭建 Layout 布局组件添加 Layout 路由配置启动项目 …

蓝桥杯-基于STM32G432RBT6的LCD进阶(LCD界面切换以及高亮显示界面)

目录 一、页面切换内容详解 1.逻辑解释 2.代码详解 code.c(内含详细讲解) code.h main.c 3.效果图片展示 ​编辑 二、页面选项高亮内容详解 1.逻辑解释 2.读入数据 FIRST.第一种高亮类型 code.c(内含代码详解) code.…

54.【C语言】 字符函数和字符串函数(strncpy,strncat,strncmp函数)

和strcpy,strcat,strcmp函数对应的是strncpy,strncat,strncmp函数 8.strncpy函数 *简单使用 cplusplus的介绍 点我跳转 翻译: 函数 strncpy char * strncpy ( char * destination, const char * source, size_t num ); 从字符串中复制一些字符 复制源(source)字符串的前num个…

根文件夹下文件重复检测

功能介绍:在传入Windows路径后(例如“D:\小米云服务下载”),遍历文件夹下所视频有文件(包括子文件夹下的视频文件,其他类型不做判断),判断视频文件是否重复(由于视频文件…

[Linux]:进程间通信(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. system V通信 前面我们所探究的通信方式都是基于管道文件的,而…

如何在 Ubuntu 系统上部署 Laravel 项目 ?

到目前为止,Laravel 是 PHP 开发人员构建 api 和 web 应用程序的首选。如果你是新手的话,将 Laravel 应用程序部署到线上服务器上可能有点棘手。 在本指南中,我们将向您展示在 Ubuntu 系统中部署 Laravel 应用程序的全过程。 Step 1: Updat…

从登录到免登录:JSP与Servlet结合Cookie的基本实现

前言 JSP中应用Cookie解析: 用户登录成功后,将用户信息保存到Cookie中,在页面读取Cookie并显示,不需要再次登录可以直接进入页面 第一步:创建JavaWeb项目,配置pom.xml文件 创建maven项目,项目名…