R语言 tidyverse系列学习笔记(系列1)

这篇具有很好参考价值的文章主要介绍了R语言 tidyverse系列学习笔记(系列1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

tidyverse 译 “洁净的宇宙” => “极乐净土”

iris 鸢尾花数据集为例

** 查看数据集**

R语言 tidyverse系列学习笔记(系列1)

** 查看维度dimention**

dim(iris)

R语言 tidyverse系列学习笔记(系列1)
iris 数据集有150个对象(observation),5列 ( Sepal.Length , Sepal.Width , Petal.Length , Petal.Width , Species )
数据太多,只想看一部分可以用 head 和 tail ,默认展示 6 个 observations

head(iris)
tail(iris)

R语言 tidyverse系列学习笔记(系列1)

R语言 tidyverse系列学习笔记(系列1)

想展示12行,设定展示的行数为12即可

head(iris,12)
tail(iris,12)

R语言 tidyverse系列学习笔记(系列1)
R语言 tidyverse系列学习笔记(系列1)

** 取 行 数据**

iris[1,]  # 取第一行
iris[1:3,] # 取前三行

R语言 tidyverse系列学习笔记(系列1)

取 列 数据

iris[,1]  # 取第一列全部150个数据
iris$Sepal.Length # 可以直接读取Sepal.Length列

R语言 tidyverse系列学习笔记(系列1)
R语言 tidyverse系列学习笔记(系列1)

在这里引入管道 pipe(%>%)

pipe 快捷键:

Windows: ctrl+shift+m
Mac: cmd+shift+m
(个人感觉将默认的pipe符号%>%设置为|>更方便)

设置如下:

在菜单栏中,选择 “Tools”(工具)。

在下拉菜单中,选择 “Global Options”(全局选项)。

在弹出的对话框中,选择 “Code”(代码)选项卡。

“Editing”(编辑)选项卡,勾选 Use Native Pipe operator|>。

单击 “Apply”,“OK”(确定)以保存更改。

添加 id 列

R语言 tidyverse系列学习笔记(系列1)

删除列

iris[,-6]  # 删除掉第 6 列,即刚刚创建的 id 列

R语言 tidyverse系列学习笔记(系列1)

条件查询 行

subset , filter

#方法1
 iris1 = iris |> 
  + subset(Sepal.Length > 6.9 & Sepal.Width > 3.2)

# 查看iris1
 iris1

#方法2
 iris2 = iris |> 
  + filter(Sepal.Length > 6.9 & Sepal.Width > 3.2)

# 查看iris2
 iris2

R语言 tidyverse系列学习笔记(系列1)
subset 显示的是原来的 id, filter 显示的是筛选之后新的 id

subset 和 filter 的并集都用 |

R语言 tidyverse系列学习笔记(系列1)

条件查询 列

select

iris3 = iris |> 
+ select(Sepal.Length , Sepal.Width)

# 查看
iris3

R语言 tidyverse系列学习笔记(系列1)
select 也可以删除某列
R语言 tidyverse系列学习笔记(系列1)

重命名 rename

R语言 tidyverse系列学习笔记(系列1)

pipe 的好处: 可以一次性处理多个任务,不用累赘的嵌套 iris1 , iris2…

iris_final = iris |> 
+ rename(S.L = Sepal.Length , S.W = Sepal.Width) |> 
+ mutate(id = row_number()) |> 
+ filter(S.L > 6 & S.W >3) |> 
+ select(S.L, S.W, Species)

 iris_final

R语言 tidyverse系列学习笔记(系列1)

分组 group_by

iris1 = iris |> 
  group_by(Species) |> 
  summarise(PL_mean = mean(Petal.Length), PW_mean = mean(Petal.Width))


iris1


iris2 = iris |> 
  group_by(Species) |> 
  mutate(PL_mean = mean(Petal.Length), PW_mean = mean(Petal.Width)) |> 
  ungroup()

iris2

不想改变原来的数据集结构,可以用mutate加上新的一列, 一般mutate之后会加一个ungroup取消分组,方便后续继续对数据集进行操作
R语言 tidyverse系列学习笔记(系列1)
R语言 tidyverse系列学习笔记(系列1)

排序 arrange

iris3 = iris |> 
  arrange(Petal.Length, desc(Petal.Width))  # 根据前后优先级,先按 Petal.length 升序拍,当 Petal.length一样时,按 Petal.width 降序排序

head(iris3,10)

R语言 tidyverse系列学习笔记(系列1)

根据类别给新列赋值

iris4 = iris |> 
  mutate(Species.new = recode(Species, setosa = 1, versicolor = 2, virginica = 3))
head(iris4, 10)

table(iris4$Species)  # 用 table 察看可以快速看出有没有赋值错误
table(iris4$Species.new)

R语言 tidyverse系列学习笔记(系列1)
用 if_else 也能实现 recode 的效果 if_else(if, then, else)

iris5 = iris |> 
  mutate(Species.new = if_else(Species == "setosa", 1,if_else(Species == "versicolor",2,3)))
  
head(iris5, 10)

table(iris5$Species)
table(iris5$Species.new)

R语言 tidyverse系列学习笔记(系列1)

去重,按 Species 给每个类别只保留一条数据

iris6 = iris |> 
  distinct(Species, .keep_all = TRUE)

iris6

最后只有三朵花,每个类别只有一朵,保留的是每个类别第一次出现的那条数据
R语言 tidyverse系列学习笔记(系列1)
由于 distinct 保留第一次出现的数据, 所以经常与 arrange 一起使用,先排序再保留一个

iris7 = iris |> 
  arrange(Petal.Width) |> 
  distinct(Species, .keep_all = TRUE)

iris7

R语言 tidyverse系列学习笔记(系列1)文章来源地址https://www.toymoban.com/news/detail-471138.html

到了这里,关于R语言 tidyverse系列学习笔记(系列1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • r语言tidyverse教程:5 字符串处理stringr

    R语言系列: 编程基础💎循环语句💎向量、矩阵和数组💎列表、数据帧 排序函数💎apply系列函数 tidyverse :readr💎tibble💎tidyr💎dplyr💎 stringr stringr 是 tidyverse 的字符串处理函数,和R语言原生的字符串处理函数相比,其API风格统一,功能完备,十分推荐使用 功能 函数 拼接

    2024年02月04日
    浏览(26)
  • 学习笔记——SPARTAN 6 系列IO资源学习笔记

    学习笔记——SPARTAN 6 系列IO资源学习笔记 参考:《Spartan-6 FPGA SelectIO Resources》User Guide 所有Spartan-6 fpga都具有可配置的高性能SelectIO驱动器和接收器,支持各种标准接口。每个IOB都包含输入、输出和3态SelectIO驱动程序。这些驱动程序可以配置为各种I/O标准。 •单端I/O标准(LVC

    2024年02月03日
    浏览(57)
  • 大数据:【学习笔记系列】 Flink 学习路线

    Apache Flink 是一种高效、可扩展的 实时流处理框架 ,它允许开发者以 实时方式处理连续的数据流 。学习 Flink 要求你具备一定的编程基础(尤其是 Java 或 Scala),同时对大数据处理的基本概念有所了解。下面是一个详细的 Flink 学习路线,包括各阶段的学习目标和推荐资源。

    2024年04月23日
    浏览(24)
  • C语言学习系列-->看淡指针(3)

    在指针的类型中我们知道有⼀种指针类型为字符指针 char* 一般使用: 进阶使用 本质是把字符串 hello ⾸字符的地址放到了pstr中。 把⼀个常量字符串的⾸字符 h 的地址存放到指针变量 pstr 中。 经典例题: 运行结果: 这⾥str3和str4指向的是⼀个同⼀个常量字符串。C/C++会把常量

    2024年02月11日
    浏览(36)
  • 【唐宇迪 深度学习-3D点云实战系列】学习笔记

     课程目录如下: https://download.csdn.net/learn/35500/529919 3D点云领域都关注了哪些方向? 课程核心系列-PointNet系列 :点云数据如何处理、点云数据如何进行特征提取。 后续无论是分类、分割、补全、配准检测, 首先都要先对点云数据进行特征提取。 PointNet系列就是重点系列。

    2023年04月25日
    浏览(31)
  • STM32 H7系列学习笔记

    第 1 步:系统上电复位,进入启动文件 startup_stm32h743xx.s,在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数 SystemInit,在system_stm32h7xx.c 里面。* 之后是调用编译器封装好的函数,比如用于 MDK 的启动文件是调__main,最终进入到 main函数* 第 2 步:进入到

    2024年04月11日
    浏览(25)
  • 大数据:【学习笔记系列】Flink基础架构

    Apache Flink 是一个开源的流处理框架,用于处理 有界 和 无界 的 数据流 。Flink 设计用于 运行在所有常见的集群环境 中,并且能够以 高性能 和 可扩展 的方式进行实时数据处理和分析。下面将详细介绍 Flink 的基础架构组件和其工作原理。 1. Flink 架构概览 Flink 的架构主要包括

    2024年04月23日
    浏览(27)
  • 【深度学习】GPT系列模型:语言理解能力的革新

    自然语言理解包括一系列不同的任务,例如文本蕴涵、问答、语义相似度评估和文档分类。尽管大量的未标记文本语料库很充足,但用于学习这些特定任务的标记数据却很稀缺,使得判别式训练模型难以达到良好的表现。 我们证明,在多样化的未标记文本语料库上进行生成式

    2024年02月08日
    浏览(37)
  • C语言学习系列-->字符函数和字符串函数

    包含头文件: 函数 如果它的参数复合下列条件就返回真(一个非零数字) iscntrl 任何控制字符 任何控制字符 空白字符:空格’ ‘,换页’f’,换行’n’,回车’r’,制表符’t’或者垂直制表符’v’ isdigit 十进制数字0~9 isxdigit 十六进制数字,包括所有十进制数字,小

    2024年02月09日
    浏览(30)
  • C语言学习笔记——C语言结构

    C语言是一种面向过程的结构化的语言,同时具有高级语言和汇编语言的优点 所有的C语言程序经过编译和连接之后才能被计算机执行 头文件是一种特殊的文件,记录了很多可以直接引用头文件然后使用的函数,也可通过#define声明函数、变量、宏等的定义 头文件通常包含在源

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包