当前位置: 首页 > 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.dtcms.com/a/288778.html

相关文章:

  • [Python] -项目实战8- 构建一个简单的 Todo List Web 应用(Flask)
  • 非线性优化框架CasADi工具箱求解最优控制问题OCP
  • Python Web框架详解:Flask、Streamlit、FastAPI
  • Python知识点2-if语句
  • 学成在线项目
  • 威力导演 12:革新级影音创作平台——专业特效与极致效率的完美融合
  • 【成品设计】STM32户外便携太阳能充电器设计
  • 看板如何体现任务完成标准
  • 小程序和H5数据mock配置过程
  • 【2025最新版】PDFelement全能PDF编辑器
  • Java 大视界 -- Java 大数据在智能教育在线学习平台用户活跃度提升与留存策略研究中的应用(354)
  • 【Linux】1. Linux操作系统介绍及环境搭建
  • 《铁血丹心》歌词翻译,简体版和繁体版,罗文、甄妮合唱
  • 页面布局,简洁一点,其实挺好的。
  • 【算法300题】:双指针
  • 20250720-6-Kubernetes 调度-nodeName字段,DaemonS_笔记
  • 网安-文件包含
  • Eureka+LoadBalancer实现服务注册与发现
  • WiFiMouseServer手机等作为远程输入
  • Web-SQL注入数据库类型用户权限架构分层符号干扰利用过程发现思路
  • 【Python数据采集】Python爬取小红书搜索关键词下面的所有笔记的内容、点赞数量、评论数量等数据,绘制词云图、词频分析、数据分析
  • 基于Transformer的智能对话系统:FastAPI后端与Streamlit前端实现
  • 敏捷开发的历史演进:从先驱实践到全域敏捷(1950s-2025)
  • CSS 单位完全指南:掌握 em、rem、vh、vw 等响应式布局核心单位
  • SpringBoot热部署与配置技巧
  • 从修图到特效:Pillow库的Python图像处理高级实战指南
  • kafka--基础知识点--5.4--max.in.flight.requests.per.connection
  • 《计算机网络》实验报告五 DNS协议分析与测量
  • 网络(HTTP)
  • QT无边框窗口