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

news2024/11/28 7:36:27

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

iris 鸢尾花数据集为例

** 查看数据集**

在这里插入图片描述

** 查看维度dimention**

dim(iris)

在这里插入图片描述
iris 数据集有150个对象(observation),5列 ( Sepal.Length , Sepal.Width , Petal.Length , Petal.Width , Species )
数据太多,只想看一部分可以用 head 和 tail ,默认展示 6 个 observations

head(iris)
tail(iris)

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述

** 取 行 数据**

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

在这里插入图片描述

取 列 数据

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

在这里插入图片描述
在这里插入图片描述

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

pipe 快捷键:

Windows: ctrl+shift+m
Mac: cmd+shift+m
(个人感觉用 |> 表示更方便)

添加 id 列

在这里插入图片描述

删除列

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

在这里插入图片描述

条件查询 行

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

在这里插入图片描述
subset 显示的是原来的 id, filter 显示的是筛选之后新的 id

subset 和 filter 的并集都用 |

在这里插入图片描述

条件查询 列

select

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

# 查看
iris3

在这里插入图片描述
select 也可以删除某列
在这里插入图片描述

重命名 rename

在这里插入图片描述

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

在这里插入图片描述

分组 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取消分组,方便后续继续对数据集进行操作
在这里插入图片描述
在这里插入图片描述

排序 arrange

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

head(iris3,10)

在这里插入图片描述

根据类别给新列赋值

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

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

在这里插入图片描述
用 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)

在这里插入图片描述

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

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

iris6

最后只有三朵花,每个类别只有一朵,保留的是每个类别第一次出现的那条数据
在这里插入图片描述
由于 distinct 保留第一次出现的数据, 所以经常与 arrange 一起使用,先排序再保留一个

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

iris7

在这里插入图片描述

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

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

相关文章

阿里服务器配置服务器自启动

一开始 是在 /etc/rc.local 文件中添加的如下脚本 bash /mnt/cangjie-server/action.sh start bash /usr/local/nginx/sbin/nginx pm2 start npm--name"cangjieWeb"run start 启动服务器,服务并没有执行。 后面把执行脚本的 bash 指令去掉 如下&#xf…

Linux内核中断和Linux内核定时器

目录 Linux内核中断 Linux内核定时器 Linux内核中断 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *dev) 功能:注册中断 参数: irq : 软中断号 gpio的软中断号 软中断号 gpio_to_i…

期末复习样卷

期末复习样卷 目录 期末复习样卷选择题简答题1. 画E-R图并将其转换为适当的关系模型2. 规范化模式分解——教学关系(学号,姓名,年龄,性别,系别,系主任,课程名,成绩)3.关系…

重装Windows系统

1.前言 有的时候,面对杂乱的文件系统,整理是十分困难的…… 有的时候,下载软件的时候会附带上某一些病毒、木马…… 有的时候,不满于更新后的系统…… 这些种种都可以使用重装系统解决,接下来我来带您学习重装windows…

煤炭价格学习

大佬发表时间在2022.11.17 神华月线,因为没有送配股,所以肯定是除权看的(前复权看的不要跟我谈技术,因为你不配) 除权,前复权,后复权 理解这三者区别之前,首先我们要简单了解 除权和…

【String字符串之后续】

我们继续上一篇文章为大家讲解,String字符串的相关知识,希望大家有所收获💞💞💞 字符串前篇的链接: link 目录 1.字符串的替换2.字符串的拆分3.字符串截取4.去掉空格5.String的不可变性6. 字符串的修改7.StringBuilde…

STL:string类使用

编码: ASCII unicode–utf-8 utf-16----一个字符2个字符 utf-32----一个字符4个字节 gbk–中文编码表 string: 是一个特殊的容器,对数据(字符数组)和库函数(strlen等)进行封装 STL提供的内容…

OpenStack部署(三)

OpenStack部署 6. Neutron6.1 创建Neutron数据库并授权6.2 获得admin凭证6.3 创建 neutron 用户并设置密码6.4 添加admin角色到neutron 用户6.5 创建neutron服务实体6.6 创建网络服务API端点6.7 安装并配置neutron服务6.8 链接plugin.ini文件6.9 初始化neutron数据库6.10 重启计…

连续两年!PingCAP 入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

近日,全球权威信息技术研究与咨询机构 Gartner 发布了云数据库市场领域 2023 Gartner Peer Insights™“Voice of the Customer” 报告,PingCAP 在报告中获得的客户总体评分达到 4.9 分(满分 5 分),在所有入选企业中位…

CBCGPCaptionBar 使用实例说明

CBCGPCaptionBar的位置如下: 如图区域就是 MainFrame.h中声明: CBCGPCaptionBar m_wndCaptionBar; MainFrame.cpp中创建显示控件: BOOL CMainFrame::CreateCaptionBar () { if (!m_wndCaptionBar.Create (WS_CHILD | WS_V…

力扣第三天 242.有效字母异位词 349 两个数组的交集

目录 1.242. 有效的字母异位词 2.349. 两个数组的交集 - 力扣(LeetCode)​​​​​​ 使用算法笔记: 总结: 1.242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意…

15. 算法之排序算法

前言 排序是在软件开发中经常遇到的需求。比如基于订单的创建时间倒排,基于金额大小排序等等,那么这些排序底层是怎么写的呢,本节,我们就常用排序算法展开介绍。 1. 冒泡排序 1.1 算法思想 冒泡排序是最基础的排序算法。冒泡排…

HashMap 的底层原理和源码分析

tip:作为程序员一定学习编程之道,一定要对代码的编写有追求,不能实现就完事了。我们应该让自己写的代码更加优雅,即使这会费时费力。 推荐:体系化学习Java(Java面试专题) 文章目录 一、HashMap…

【迷宫】地下迷宫游戏-微信小程序开发流程详解

可曾记得,小时候上学路边买的透明铅笔盒,里面内嵌了一个小球,它用重力可从起点滚动到终点,对小朋友来说是感觉有趣的,在这个游戏的基础上,弄一款微信小程序的迷宫探索游戏试试,在不同关卡的迷宫…

14 【Vuex】

1.理解 Vuex 1.1 Vuex 是什么 概念:专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对Vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用…

基于RK3399+FPGA的地面测试台多参数数据记录仪方案(一)软件设计及测试

完成了测试台软件分析和编程环境搭建后,接下来就是软件的编写。本章主要包括 软件窗口界面设计和功能代码实现。以某型号数据记录仪的工作需求为目标,根据测试 工作流程,以 Linux-Qt 为主要开发手段,设计一款功能完备、界面友…

Java8 Stream详解及结束操作方法使用示例(三)

结束操作是指结束 Stream 该如何处理的操作,并且会触发 Stream 的执行。下面是一些常用的结束操作方法。结束操作会对数据源进行遍历,因此是及早求值的。 Java8 Stream详解及中间操作方法使用示例(一) ​​​​​​​Java8 Strea…

三种经典博弈(取石子问题)

三种经典博弈 巴什博奕威佐夫博奕尼姆博奕 博弈是有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简…

一体化协同平台助力企业回归生产本质,创造价值

核心观点 单点工具的串联无法有效解决研效痛点问题,企业需要通过一体化协同平台提高端到端价值流动效率。一体化协同平台的价值是软件工程理念最大化落地、数字化研发管理、沉浸式研发体验。一体化协同平台集成需要评估闭环效率杠杆,确定集成边界和集成…

什么是关系模型? 关系模型的基本概念

关系模型由IBM公司研究员Edgar Frank Codd于1970年发表的论文中提出,经过多年的发展,已经成为目前最常用、最重要的模型之一。 在关系模型中有一些基本的概念,具体如下。 (1)关系(Relation)。关系一词与数学领域有关,它是集合基…