当前位置: 首页 > news >正文

`tidyverse` 中涉及的函数及其用法

1. filter():根据条件筛选行

filter() 函数用于根据逻辑条件保留数据框中的行。

  • 基本语法
    filter(.data, condition)
    
    • .data:要筛选的数据框。
    • condition:逻辑条件,可以是逻辑运算符(如 ><== 等)组合。
  • 示例
    # 筛选起飞延误超过120分钟的航班
    flights %>%filter(dep_delay > 120)
    # 筛选1月1日的航班
    flights %>%filter(month == 1 & day == 1)
    # 筛选1月或2月的航班
    flights %>%filter(month %in% c(1, 2))
    

2. select():选择列

select() 函数用于按名称、范围或条件选择数据框中的列。

  • 基本语法
    select(.data, ...)
    
    • .data:要选择列的数据框。
    • ...:要选择的列名,可以使用列名、范围(如 year:day)或条件(如 !year:day)。
  • 示例
    # 选择指定列
    flights %>%select(year, month, day)
    # 选择范围内的列
    flights %>%select(year:day)
    # 排除指定列
    flights %>%select(!year:day)
    # 选择特定类型的列
    flights %>%select(where(is.character))
    

3. mutate():添加新列

mutate() 函数用于基于现有列创建新列,支持数学计算。

  • 基本语法
    mutate(.data, name = value, ...)
    
    • .data:要处理的数据框。
    • name = value:新列的名称和值,值可以是基于现有列的计算表达式。
  • 示例
    # 计算延误时间差和飞行速度
    flights %>%mutate(gain = dep_delay - arr_delay, speed = distance / air_time * 60)
    # 控制新列位置
    flights %>%mutate(speed = distance / air_time * 60, .before = 1)
    

4. arrange():根据列值排序行

arrange() 函数用于按一个或多个列的值对数据框进行排序。

  • 基本语法
    arrange(.data, ...)
    
    • .data:要排序的数据框。
    • ...:要排序的列名,可以使用 desc() 函数进行降序排序。
  • 示例
    # 按年、月、日、出发时间排序
    flights %>%arrange(year, month, day, dep_time)
    # 按延误时间降序排序
    flights %>%arrange(desc(dep_delay))
    

5. distinct():查找唯一行

distinct() 函数用于去除重复行,可指定列名以查找特定列的唯一组合。

  • 基本语法
    distinct(.data, ..., .keep_all = FALSE)
    
    • .data:要处理的数据框。
    • ...:要查找唯一组合的列名。
    • .keep_all:是否保留其他列,默认为 FALSE
  • 示例
    # 查找所有唯一的起点和终点组合
    flights %>%distinct(origin, dest)
    # 保留其他列时查找唯一组合
    flights %>%distinct(origin, dest, .keep_all = TRUE)
    

6. rename():重命名列

rename() 函数用于保留所有列,仅重命名指定列。

  • 基本语法
    rename(.data, new_name = old_name, ...)
    
    • .data:要处理的数据框。
    • new_name = old_name:新列名和旧列名的对应关系。
  • 示例
    flights %>%rename(tail_num = tailnum)
    

7. relocate():移动列

relocate() 函数用于移动列的位置。

  • 基本语法
    relocate(.data, ..., .before = NULL, .after = NULL)
    
    • .data:要处理的数据框。
    • ...:要移动的列名。
    • .before.after:指定移动到的位置。
  • 示例
    # 将列移到前面
    flights %>%relocate(time_hour, air_time)
    # 将列移到指定位置
    flights %>%relocate(year:dep_time, .after = time_hour)
    

8. group_by():分组

group_by() 函数用于按一个或多个变量将数据集划分为组。

  • 基本语法
    group_by(.data, ...)
    
    • .data:要分组的数据框。
    • ...:分组变量的列名。
  • 示例
    flights %>%group_by(month)
    flights %>%group_by(year, month, day)
    

9. summarize():汇总

summarize() 函数用于对分组数据进行汇总计算。

  • 基本语法
    summarize(.data, name = function(...), ...)
    
    • .data:要汇总的数据框。
    • name = function(...):汇总计算的名称和函数。
  • 示例
    # 计算每月的平均延误时间
    flights %>%group_by(month) %>%summarize(avg_delay = mean(dep_delay, na.rm = TRUE))
    # 计算每组的行数
    flights %>%group_by(month) %>%summarize(n = n())
    

10. slice_*() 函数:提取特定行

slice_*() 函数用于从每个组中提取特定行。

  • 基本语法
    slice_max(.data, order_by, n = 1, ...)
    slice_min(.data, order_by, n = 1, ...)
    
    • .data:要处理的数据框。
    • order_by:排序的列名。
    • n:提取的行数。
  • 示例
    # 提取每个目的地最晚到达的航班
    flights %>%group_by(dest) %>%slice_max(arr_delay, n = 1)
    

这些函数是 tidyversedplyr 包的核心工具,可以帮助你高效地进行数据转换和操作。

http://www.lryc.cn/news/594144.html

相关文章:

  • tabBar设置底部菜单选项、iconfont图标(图片)库、模拟京东app的底部导航栏
  • GPT-4o mini TTS:领先的文本转语音技术
  • 私有云新势力:Puter+CPolar如何低成本替代商业网盘?
  • Softhub软件下载站实战开发(十九):软件信息展示
  • 42.sentinel实现线程隔离
  • 学习日志15 python
  • JAVA面试宝典 -《容灾设计:异地多活架构实践》
  • nvm、npm、pnpm、cnpm、yarn
  • Python适配器模式详解:让不兼容的接口协同工作
  • 【C语言】内存函数介绍(上)
  • 【单片机外部中断实验修改动态数码管0-99】2022-5-22
  • 从零开始的云计算生活——番外5,使用ELK实现对应用日志的监控
  • 多源异构数据融合的理论与方法
  • Modbus Slave 使用教程:快速搭建模拟从站进行测试与开发
  • JavaScript 语言基础详解
  • 论文笔记:Seed: Bridging Sequence and Diffusion Models for RoadTrajectory Generation
  • TD3与SAC强化学习算法深度对比
  • [Python] -项目实战4- 利用Python进行Excel批量处理
  • Valgrind Memcheck 全解析教程:6个程序说明基础内存错误
  • 无线通信相关概念
  • LeetCode 1712.将数组分成三个子数组的方案数
  • 基于卷积傅里叶分析网络 (CFAN)的心电图分类的统一时频方法
  • 复杂度+包装类型+泛型
  • @import导入css样式、scss变量用法、static目录
  • CSS中Padding与Margin的区别
  • `TransportService` 是 **Elasticsearch 传输层的“中枢路由器”**
  • Dify 1.6 安装与踩坑记录(Docker 方式)
  • python网络爬虫小项目(爬取评论)超级简单
  • EXPLAIN:你的SQL性能优化透视镜
  • ESXi6.7硬件传感器红色警示信息