推广

第三章 使用dplyr进行数据转换

iseeyu3年前 (2024-02-21)推广209

比较运算符
比较运算符: >、 >=、 <、 <=、 !=(不等于)和 ==(等于)。
比较浮点数是否相等时,不能使用 ==,而应该使用 near():

逻辑运算符
布尔运算符: & 表示“与”、 | 表示“或”、 ! 表示“非”:

缺失值
确定一个值是否为缺失值,可以使用 is.na() 函数:

filter() 只能筛选出条件为 TRUE 的行;它会排除那些条件为 FALSE 和 NA 的行:

使用arrange()排列行
arrange() 函数的工作方式与 filter() 函数非常相似,但前者不是选择行,而是改变行的顺序。它接受一个数据框和一组作为排序依据的列名(或者更复杂的表达式)作为参数。如果列名不只一个,那么就使用后面的列在前面排序的基础上继续排序,注:默认缺失值排在最后。

使用 desc() 可以按列进行降序排序:

使用select()选择列
select()可以用于选择自己需要的列作为子集,然后用于分析:

select () 函数的一些辅助函数:
• starts_with(“abc”):匹配以“abc”开头的名称。
• ends_with(“xyz”):匹配以“xyz”结尾的名称。
• contains(“ijk”):匹配包含“ijk”的名称。
• matches(“(.)\1”):选择匹配正则表达式的那些变量。这个正则表达式会匹配名称中有
重复字符的变量。你将在第 10 章中学习到更多关于正则表达式的知识。
• num_range(“x”, 1:3):匹配 x1、 x2 和 x3。
select() 可以重命名变量,但我们很少这样使用它,因为这样会丢掉所有未明确提及的变量。我们应该使用 select() 函数的变体 rename() 函数来重命名变量,以保留所有未明确提及的变量:

select() 函数和 everything() 辅助函数结合起来使用。可以将几个变量移到数据框开头时,这种用法非常奏效:

使用mutate()添加新变量
mutate()函数可用于添加新的列。
.after = X 添加在X列的后面 .before = Y 添加在Y列的前面

如果只想保留新变量,可以使用 transmute() 函数:

常用创建函数
算术运算符: +、 -、 *、 /、 ^

模运算符: %/% 和 %%

对数函数: log()、 log2() 和 log10()
偏移函数:lead() 和 lag() 函数可以返回一个序列的领先值和滞后值。

累加和滚动聚合:R 提供了计算累加和、累加积、累加最小值和累加最大值的函数: cumsum()、 cumprod()、commin() 和 cummax(); dplyr 还提供了 cummean() 函数以计算累加均值。如果想要计算滚动聚合(即滚动窗口求和),那么可以尝试使用 RcppRoll 包:

逻辑比较: <、 <=、 >、 >= 和 !=

使用summarize()进行分组摘要
查看数据摘要。
使用管道组合多种操作
管道命令: %>%,使用这种方法时, x %>% f(y) 会转换为 f(x, y), x %>% f(y) %>% g(z) 会转换为 g(f(x,y), z),以此类推。

等价于

缺失值
na.rm = TRUE表示移除缺失值。

计数
n()函数表示计数。
常用的摘要函数
位置度量:median(x)中位值
分散程度度量: sd(x)、 IQR(x) 和 mad(x)。均方误差(又称标准误差, standard deviation, sd)是分散程度的标准度量方式。四分位距 IQR() 和绝对中位差 mad(x) 基本等价。
秩的度量: min(x)、 quantile(x, 0.25) 和 max(x)。quantile(x, 0.25) 会找出 x 中按从小到大顺序大于前25% 而小于后 75% 的值。
定位度量: first(x)、 nth(x, 2) 和 last(x)。这几个函数的作用与 x[1]、 x[2] 和 x[length(x)] 相同,只是当定位不存在时(比如尝试从只有两个元素的分组中得到第三个元素),前者允许你设置一个默认值。
计数:n(),sum(!is.na(x))可以计算出非缺失值的数量,n_distinct(x)可以计算出唯一值的数量。
逻辑值的计数和比例: sum(x > 10) 和 mean(y == 0)。当与数值型函数一同使用时, TRUE 会转换为 1, FALSE 会转换为 0。
按多个变量分组
当使用多个变量进行分组时,每次的摘要统计会用掉一个分组变量。

取消分组
如果想要取消分组,并回到未分组的数据继续操作,那么可以使用 ungroup() 函数:

分组新变量(和筛选器)
分组筛选器的作用相当于分组新变量加上未分组筛选器。

附:dplry深度学习
筛选:filter
filter()函数k可以按照给定的逻辑条件筛选出符合要求的子数据集,返回与输入数据相同的数据类型,支持对同一对象的任意条件组合。
语法:
filter(data,条件)

排序:arrange
arrange()函数按照给定的列对数据进行排序,默认是按照升序排序,也可以使用desc()实现降序排序。可以对多个列进行排序,用逗号分隔。
语法:
arrange(data,col_name)

选择:select
select()按照列名选择子数据集,可以结合特定函数使用:
ends_with():选择以指定字符结尾的列
starts_with():选择以指定字符开头的列
contains():选择包含指定字符的列
one_of():选择列名为指定字符的列
num_range():选择组合字符指定的列
everything():选择所有的列,一般不用于选择,而是用于修改列的顺序
语法:
select(data,col_names)

重命名:rename
rename()函数的使用方法和select一样,唯一不同的是rename()函数可以对列进行重命名后返回的是全部列,而不是只返回重命名的列。
语法:
rename(data,new_name=old_name)

变形:mutate
mutate()函数可以对已有的列进行数据运算并添加为新的列,mutate的结果会保留原有变量。
语法:
mutate(data,…)

去重:distinct
distinct()用于对输入的数据进行去重,返回无重复的行。
语法:
distinct(.data, …, .keep_all = FALSE)

概要:summarise
sunmmarise()可以对数据框进行汇总操作,返回一维结果。
语法:
summarise(.data, …)
summarise主要支持以下几种公式 :
mean()、 median()
sd()、 IQR()、 mad()
min()、 max()、 quantile()
first()、 last()、 nth()
n()、 n_distinct()
any()、 all()

抽样:sample
用于对数据进行抽样的函数,sample_n()抽取指定数量的样本,sample_frac()抽取指定百分比的样本,默认为不放回抽样,可以通过设置replacement=TRUE改为放回抽样。
语法:
sample_n(tbl, size, replace = FALSE, weight = NULL, .env = parent.frame())
sample_frac(tbl, size = 1, replace = FALSE, weight = NULL,.env = parent.frame())

分组:group_by
group_by()用于对数据集按照给定变量分组,返回分组后的数据集,使用以上的函数对分组数据进行操作时,会自动对分组数据进行操作。
语法:
group_by(data, …, add = FALSE)

条件语句:ifelse
语法:
if_else(condition,true, false, missing = NULL)

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57516.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片