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

R for Data Science(3)

  • R for Data Science
  • 以下是关于网页内容的详细笔记:

1. 章节概览

  • 章节主题:数据转换(Data Transformation)
  • 核心内容:介绍如何使用 R 中的 dplyr 包进行数据转换,包括对数据框的行、列和组的操作,以及管道操作符的使用。

2. 数据转换基础

  • dplyr 包:是 tidyverse 的核心成员之一,提供了用于数据转换的工具。
  • nycflights13 数据集:包含 2013 年从纽约市出发的所有航班信息,用于示例分析。
  • Tibble:一种特殊的数据框,专为大型数据集设计,仅显示部分行和列。

3. 行操作

3.1 filter() 函数

  • 功能:根据条件筛选行。
  • 示例
    • 筛选起飞时间晚点超过 120 分钟的航班:
      flights |>filter(dep_delay > 120)
      
    • 筛选特定月份或日期的航班:
      flights |>filter(month == 1 & day == 1)
      
  • 常见错误:使用 = 而不是 ==,或者错误地使用逻辑运算符。

3.2 arrange() 函数

  • 功能:根据列的值对行进行排序。
  • 示例
    • 按起飞时间排序:
      flights |>arrange(year, month, day, dep_time)
      
    • 按延迟时间降序排序:
      flights |>arrange(desc(dep_delay))
      

3.3 distinct() 函数

  • 功能:查找唯一行或唯一组合。
  • 示例
    • 删除重复行:
      flights |>distinct()
      
    • 查找唯一的出发地和目的地组合:
      flights |>distinct(origin, dest)
      

4. 列操作

4.1 mutate() 函数

  • 功能:创建新列或修改现有列。
  • 示例
    • 计算延迟时间的增益和飞行速度:
      flights |>mutate(gain = dep_delay - arr_delay,speed = distance / air_time * 60)
      

4.2 select() 函数

  • 功能:选择特定的列。
  • 示例
    • 选择特定列:
      flights |>select(year, month, day)
      
    • 使用范围选择:
      flights |>select(year:day)
      

4.3 rename() 函数

  • 功能:重命名列。
  • 示例
    • 重命名列:
      flights |>rename(tail_num = tailnum)
      

4.4 relocate() 函数

  • 功能:重新排列列的顺序。
  • 示例
    • 将列移动到前面:
      flights |>relocate(time_hour, air_time)
      

5. 组操作

5.1 group_by() 函数

  • 功能:按一个或多个变量分组。
  • 示例
    • 按月份分组:
      flights |>group_by(month)
      

5.2 summarize() 函数

  • 功能:对分组数据进行汇总。
  • 示例
    • 计算每个月的平均延迟时间:
      flights |>group_by(month) |>summarize(avg_delay = mean(dep_delay, na.rm = TRUE))
      

5.3 slice_*() 函数

  • 功能:提取每个组中的特定行。
  • 示例
    • 提取每个目的地延迟时间最长的航班:
      flights |>group_by(dest) |>slice_max(arr_delay, n = 1)
      

6. 管道操作符

  • 功能:将多个操作组合在一起,使代码更简洁。
  • 示例
    • 使用管道找到最快的航班:
      flights |>filter(dest == "IAH") |>mutate(speed = distance / air_time * 60) |>select(year:day, dep_time, carrier, flight, speed) |>arrange(desc(speed))
      

7. 案例研究

  • 内容:使用棒球数据集(Lahman 包)分析击球手的表现。
  • 示例
    • 计算击球手的击球平均数和击球次数:
      batters <- Lahman::Batting |>group_by(playerID) |>summarize(performance = sum(H, na.rm = TRUE) / sum(AB, na.rm = TRUE),n = sum(AB, na.rm = TRUE))
      

8. 总结

  • 重点:介绍了 dplyr 包中用于操作数据框的工具,包括行操作、列操作和组操作。
  • 下一步:深入学习特定类型数据的转换方法(如数字、字符串、日期等)。
http://www.xdnf.cn/news/7078.html

相关文章:

  • oppo手机安装APK失败报错:安装包异常
  • 常见的数据库问题
  • Binary Prediction with a Rainfall Dataset-(回归+特征工程+xgb)
  • 【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率
  • Popeye
  • UnLua源码分析(一)初始化流程
  • 13.Ext系列文件系统
  • 【2025版】SpringCloud Gateway网关快速入门
  • 相机Camera日志分析之十二:高通相机Camx hal拍照1帧logcat日志capture拍照帧详解
  • 基于CNN的猫狗识别(自定义CNN模型)
  • AIDA64 extreme7.5 版本注册激活方法
  • 掌握LINQ:查询语法与方法语法全解析
  • 什么是 Flink Pattern
  • 内容中台的AI基石是什么?
  • TDengine 在新能源领域的价值
  • 前端动画库 Anime.js 的V4 版本,兼容 Vue、React
  • OpenHarmony外设驱动使用 (四),Face_auth
  • 蓝牙通讯协议学习
  • 内容社区系统开发文档(中)
  • 继MCP、A2A之上的“AG-UI”协议横空出世,人机交互迈入新纪元
  • windows环境下c语言链接sql数据库
  • Kubernetes控制平面组件:Kubelet详解(六):pod sandbox(pause)容器
  • JSON Schema 高效校验 JSON 数据格式
  • 微服务项目->在线oj系统(Java版 - 2)
  • c++编写中遇见的错误
  • 【AWS入门】Amazon SageMaker简介
  • 4:OpenCV—保存图像
  • 解决 Tailwind CSS 代码冗余问题
  • 机器学习(12)——LGBM(1)
  • Python爬虫基础