基于R语言的统计分析基础:使用dplyr包进行数据操作

news2024/9/21 14:39:00

dplyr是R语言中一个功能强大且流行的数据操作包,它提供了一系列用于数据清洗、转换、汇总和可视化的工具。这些工具包括选择列、过滤行、排序、添加或修改列、汇总数据以及分组和合并数据集的函数。dplyr的设计使得数据操作变得简单直观,同时保持高性能,并且支持与外部数据库的连接、懒惰数据操作以及窗口函数。此外,dplyr鼓励使用整洁数据的原则,并与其他R语言包(如tidyrggplot2等)有很好的集成,形成一个完整的数据分析工作流。

dplyr常用函数与用法

函数用途
select()选择数据集中的列
filter()基于条件过滤行
arrange()对数据集进行排序
mutate()添加新列或修改现有列
summarise()计算汇总统计量,减少到每组的单一行
group_by()将数据集分组,以便进行分组操作
ungroup()移除数据集的分组信息
distinct()删除重复行,保留唯一值
inner_join()根据两个数据集的共同列进行内连接
left_join()根据左数据集的键和右数据集的键进行左连接
right_join()根据右数据集的键和左数据集的键进行右连接
full_join()根据两个数据集的键进行全连接
semi_join()返回左数据集在右数据集中有匹配的记录
anti_join()返回左数据集中不在右数据集中的记录

函数使用示例

这里先导入dplyr包,随后新建两个data.feame数据集用于后续操作,一个数据框用于存储学生信息,一个数据框用于存储专业课成绩

library(dplyr)

students <- data.frame(  
  student_id = c(1, 2, 3, 4, 5),  
  name = c("GGBond", "FeiFei", "DickDai", "SuperFuckMan", "TeacherMihu"),  
  age = c(16, 17, 15, 23, 42)  
)  

courses <- data.frame(  
  course_id = c(101, 102, 103, 104, 105),  
  course_name = c("Math", "Science", "History", "Math", "Art"),  
  student_id = c(1, 2, 3, 1, 4)  
)

在这里插入图片描述

使用select()函数选择数据集中的列
selected_students <- students %>%  select(name, age)  
selected_students

在这里插入图片描述

使用filter()函数基于条件过滤行
filtered_students <- students %>%  filter(age > 21)  
filtered_students

在这里插入图片描述

使用arrange()函数对数据集进行排序
arranged_students <- students %>%  arrange(desc(age))  
arranged_students

在这里插入图片描述

使用mutate()函数添加新列或修改现有列
mutated_students <- students %>%  mutate(is_adult = age >= 21)  
mutated_students

在这里插入图片描述

使用summarise()函数计算汇总统计量,减少到每组的单一行
summarised_students <- students %>%  summarise(avg_age = mean(age))  
summarised_students

在这里插入图片描述

使用group_by()ungroup()函数将数据集分组,以便进行分组操作,然后移除分组信息
grouped_students <- students %>%  group_by(age) %>%  summarise(count = n())  
grouped_students

在这里插入图片描述

移除分组信息
ungrouped_students <- grouped_students %>%  ungroup()  
ungrouped_students

在这里插入图片描述

使用distinct()函数删除重复行,保留唯一值
distinct_courses <- courses %>%  distinct(course_name)  
distinct_courses

在这里插入图片描述

使用inner_join()函数根据两个数据集的共同列进行内连接
inner_joined <- inner_join(students, courses, by = "student_id")  
inner_joined

在这里插入图片描述

使用left_join()函数根据左数据集的键和右数据集的键进行左连接
left_joined <- left_join(students, courses, by = "student_id")  
left_joined

在这里插入图片描述

使用right_join()函数根据右数据集的键和左数据集的键进行右连接
right_joined <- right_join(students, courses, by = "student_id")  
right_joined

在这里插入图片描述

使用full_join()函数根据两个数据集的键进行全连接
full_joined <- full_join(students, courses, by = "student_id")  
full_joined

在这里插入图片描述

使用semi_join() 返回左数据集在右数据集中有匹配的记录
semi_joined <- semi_join(students, courses, by = "student_id")  
print(semi_joined)

在这里插入图片描述

使用anti_join() 返回左数据集中不在右数据集中的记录
anti_joined <- anti_join(students, courses, by = "student_id")  
print(anti_joined)

distinct_courses <- courses %>%  distinct(course_name)  
distinct_courses

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鹏哥C语言自定义笔记重点(67-)

67. 68. 69. 70. 71.结构体内容 72.理解结构体的字节数 73. #pragma once //头文件中使用&#xff0c;功能是:防止头文件被多次引用 74.结构体传参 结论:结构体传参时&#xff0c;要传结构体地址。 75.位段 76.static是只能在该文件中看到&#xff0c;其他地方看不到 77.…

Linux 文件 IO 管理(第一讲)

Linux 文件 IO 管理&#xff08;第一讲&#xff09; 回顾 C 语言文件操作&#xff0c;提炼理解新创建的文件为什么被放在可执行文件的同级目录下&#xff1f;上述 log.txt 何时被创建&#xff1f;又是谁在打开它&#xff1f;那文件没有被打开的时候在哪里&#xff1f;一个进程可…

柳淘鸿美业大健康:开启消费赚钱新时代!

随着消费升级和健康意识的不断提高&#xff0c;柳淘鸿美业大健康正式宣布开启消费赚钱新时代&#xff01;这家引领行业潮流的公司以其创新的商业模式和独特的产品组合&#xff0c;正在改变人们对美业和健康产业的认知。 柳淘鸿美业大健康作为国内领先的新零售赋能中心&#xf…

19. 网络结构搭建实例

网络结构搭建实例 1. 网络结构图 图示为适应 cifar10 数据集的一个网络结构图&#xff0c;本文主要针对于复现如下网络结构&#xff0c;并介绍相关函数的使用 2. 网络结构各层参数分析 复现网络结构前需要对各层的参数进行分析 第一层&#xff1a;Input (3*32*32) --> C…

2024年<9月版>宠物空气净化器推荐,希喂、霍尼韦尔、IAM吸毛吗

宠物空气净化器现在是每个养宠家庭都必不可少的家电&#xff0c;我们可以没有吸尘器、扫地机器人&#xff0c;但绝对不能没有宠物空气净化器&#xff01;有了宠物空气净化器就可以帮我们解决浮毛这一大难题&#xff0c;特别是换季时节&#xff0c;宠物开始换毛&#xff0c;有了…

leetcode hot100_part4_子串

2024/4/20—4/21 560.和为K的子数组 前缀和哈希表&#xff0c;做二叉树的时候也有这个套路。注意细节&#xff0c;遍历到当前前缀和的时候是先找结果个数还是先加入哈希&#xff1f;应该先找结果个数&#xff0c;不然的话&#xff0c;当前位置也算上了&#xff08;因为是前缀和…

【网络安全】-文件上传漏洞

文件操作漏洞包括文件上传漏洞&#xff0c;文件包含漏洞&#xff0c;文件下载漏洞。 文章目录 前言 什么是文件上传漏洞&#xff1f; 文件上传的验证与绕过&#xff1a; 1.前端js验证&#xff1a;   Microsft Edge浏览器&#xff1a; Google Chrome浏览器&#xff1a; 2.后端…

【jvm】记一次hive堆heap内存溢出的排查

先看下java的内存模型 监控jvm工具&#xff1a;visualVM 摘录一下内容&#xff1a; 由c开发的jvm&#xff0c;它巧妙地设计了java的设计理念——即万物皆对象。并设计了这些对象应该如何存储&#xff0c;如何调用&#xff0c;并通过不断迭代设计让对象的存储和回收&#xff0…

最新安装vmware地址(官网找半天没找到)

CDS Repository - /var/www/public/stage/session-120/cds/vmw-desktop 直接走这个点进去&#xff0c;windows点ws&#xff0c;linux和mac点fusion进去下对应版本 win为例子&#xff1a;CDS Repository - /var/www/public/stage/session-50/cds/vmw-desktop/ws/17.6.0/242380…

MyBatis中一对多关系的两种处理方法

目录 1.多表联查&#xff08;通过collection标签的ofType属性&#xff09; 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff09;测试代码 4&#xff09;测试结果 2.分布查询(通过collection标签的select属性) 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff0…

铁路输电线路异物检测数据集

铁路输电线路异物检测数据集&#xff0c;共6GB&#xff0c;14000余图像&#xff0c;40000标注&#xff0c;标注鸟巢&#xff0c;塑料袋&#xff0c;气球&#xff0c;漂浮物四大类。coco格式标注。 项目背景&#xff1a; 铁路输电线路是保障铁路运输安全的重要组成部分&#xf…

Golang | Leetcode Golang题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; func toHex(num int) string {if num 0 {return "0"}sb : &strings.Builder{}for i : 7; i > 0; i-- {val : num >> (4 * i) & 0xfif val > 0 || sb.Len() > 0 {var digit byteif val < 10 {digit 0…

小程序组件间通信

文章目录 父传子子传父获取组件实例兄弟通信 父传子 知识点&#xff1a; 父组件如果需要向子组件传递指定属性的数据&#xff0c;在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似&#xff0c;使用数据绑定&#xff0c;这样就可以向子组件的属性传递动态数据。 父…

随机森林算法介绍

文章目录 基本原理关键步骤举例说明算法流程优点缺点实现示例总结 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;主要用于分类和回归任务。它通过集成多棵决策树来提高模型的准确性和泛化能力。以下是随机森林的详细算法介绍&#xff1a; 基本…

VMware Tools系列二:图解安装VMware Tools过程

一、安装环境&#xff1a; VMware Workstation Pro17华为OpenEuler虚拟机 二、安装步骤&#xff1a; 在VMware Workstation中为OpenEuler虚拟机安装VMware Tools的步骤如下&#xff1a; 1. 确保OpenEuler虚拟机正在运行。注意&#xff0c;安装的VMware Tools只对当前虚拟机…

结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…

一文学会Containerd配置和镜像加速

一文学会Containerd配置和镜像加速 ❤️ 摘要: 本文介绍了 Containerd 的基本概念及其在 Kubernetes 中的作用&#xff0c;并详细说明了如何通过配置代理、使用国内镜像源或手动下载等方式加速镜像拉取。此外&#xff0c;还提供了针对不同场景的具体配置方法&#xff0c;包括通…

解码 OpenAI 的 o1 系列大型语言模型

OpenAI 表示&#xff0c;其 Strawberry 项目已升级为新的大型语言模型 (LLM) 系列&#xff0c;公司将其命名为 OpenAI o1。 该公司表示&#xff0c;新系列模型还包括一个 o1-mini 版本&#xff0c;以提高成本效益&#xff0c;可根据其推理能力与最新的GPT-4o 模型进行区分。 …

Visual Studio(vs)下载安装C/C++运行环境配置和基本使用注意事项

基本安装 点击跳转到vs官网点击箭头所指的按钮进行下载双击运行刚才下载好的下载器点击继续勾选“使用C的桌面开发”和“Visual Studio扩展开发”点击“安装位置”&#xff0c;对vs的安装位置进行更改。你可以跟我一样只选择D盘或者其他你空闲的盘&#xff0c;然后将默认的路径…

AIGC文本生成

文本生成是一种人工智能技术&#xff0c;它基于深度学习算法&#xff0c;根据给定的提示信息创作出有逻辑、连贯的文本内容。 文本生成所需的输入&#xff08;提示或Prompt&#xff09;可以是简单的关键词、一句话概述或是更复杂的指令和上下文信息。文本生成模型通过分析大量…