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

news/2024/11/23 2:59:03/

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 列

在这里插入图片描述

条件查询 行

#方法1iris1 = iris |> + subset(Sepal.Length > 6.9 & Sepal.Width > 3.2)# 查看iris1iris1#方法2iris2 = iris |> + filter(Sepal.Length > 6.9 & Sepal.Width > 3.2)# 查看iris2iris2

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

条件查询 列

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))iris1iris2 = 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.ppmy.cn/news/211004.html

相关文章

制作酷炫可视化大屏利器--分享10种比较流行的开源免费的图表库

在开发可视化项目的过程中往往涉及到可视化图表, 多酷炫的报表, 大屏, 都用了非常多的图表, 接下来我和大家分享一些比较流行的开源免费的图表库. 分享10种比较流行的开源免费的图表库 1,Frappe Charts2,Recharts3,Protovis4,dygr…

MySQL 事务处理语言 TCL

文章目录 事务处理语言 TCL事务简介事务控制并发事务的隔离挑战脏读不可重复读幻读 事务的隔离级别未提交读(READ-UNCOMMITED)提交读(READ COMMITED)可重复读(REPEATABLE READ)可串行化(SERIALI…

命名管道详解

一、命名管道 1、命名管道与匿名管道一个很显著的区别是:匿名管道只能在有血缘关系的进程间进行通信,但命名管道可以让两个毫无关系的进程进行通信。 2、如果我们想在不相关的进程间交换数据,我们可以用到FIFO文件来进行通信,这…

Redis高级数据结构之GEO

GEO的介绍 Redis3.2版本提供了GEO地址位置信息定位的功能。支持存储地理位置信息来实现诸如摇一摇,附近位置这类地理位置信息的功能。 Redis也是使用业界比较通用的地理位置距离排序算法GeoHash算法。将二维的经纬度坐标数据映射到一维的整数,将所有元素…

数据挖掘 基础知识 收集

A Tutorial on Clustering Algorithms-聚类小知识 俗话说:“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。所谓类,通俗地说,就是指相似元素的集合。聚类分析又称群分析,…

朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现

朴素贝叶斯(西瓜数据集分类,社区恶意留言分类,垃圾邮件分类,新浪新闻分类),AODE分类器 代码实现 以下代码为本人学习后,修改或补充后的代码实现,数据集和原代码请参考:h…

宏定义编程软件_什么是计算机编程? 定义软件开发。

宏定义编程软件 My five year old son, Ramy, approached me one day while I was working from home and asked, “What are you doing Mama?” 我五岁的儿子拉米有一天在我在家工作时走近我,问道:“你在做什么妈妈?” “I’m working,”…

二代芯片获认可又拿到上亿元融资的深聪智能,正在逐步构筑自己的竞争壁垒...

数据智能产业创新服务媒体 ——聚焦数智 改变商业 日前,思必驰旗下的芯片设计企业上海深聪半导体有限责任公司(以下简称“深聪智能”)获得上亿元人民币的A轮融资,投资方包括雅迪科技集团、珠海大横琴集团、元禾控股、苏州工业园区…