推广

R语言dplyr包处理数据2021.3.6

iseeyu2年前 (2024-02-21)推广125

图1 筛选结果

2.2 去除重复行–distinct函数

dplyr::distinct(rbind(iris[1:10,],iris[1:20,]))#取出前10行和前20行合并后去除重复行

图2 去除结果

2.3 取出任意行–slice函数

slice函数取出的数据不包含行名,旧版本如果想用slice取出包含行名的数据则可以使用mutate函数
l例如mtcars<-mutate(mtcars,names=rownames(mtcars)),但是新版本的包已经包含行名。

dplyr::slice(iris,10:16)#取出10到16行数据

图3 取出行数据

2.4 随机抽取n行数据–sample_n函数

dplyr::sample_n(iris,10)#随机抽取10行数据

图4 随机抽取10行数据

2.5 按比例随机选取数据–sample_frac函数

dplyr::sample_frac(iris,0.3)#按比例随机抽取数据,抽取原数据的30%

图5 按比例随机选取数据

2.6 对数据进行排序–arrange函数

desc是改变默认排序规则

dplyr::arrange(iris,Sepal.Length)#将Sepal.Length列进行从小到大排序
#dplyr::arrange(iris,desc(Sepal.Length))#方法一:将Sepal.Length列进行从大到小排序
#dplyr::arrange(iris,-Sepal.Length)#方法二:将Sepal.Length列进行从大到小排序

图6 将Sepal.Length列进行排序

2.7 对数据取子集–select函数

比R自带的subset函数更好用

2.8 对数据进行统计计算–summarise函数

dplyr::summarise(iris,avg=mean(Sepal.Length))#对Sepal.Length这一列进行平均数计算
dplyr::summarise(iris,sum=sum(Sepal.Length))#对Sepal.Length这一列进行求和计算

2.9 对数据进行分组–group_by函数

dplyr::group_by(iris,Species)#方法一:按属种不同将数据分为三组
#iris %>% group_by(Species)#方法二:按属种不同将数据分为三组
#iris %>% group_by(Species) %>% summarise(Sepal.Length.avg=mean(Sepal.Length))#用管道函数将分好组后的数据求出各组的Sepal.Length的平均值
#iris %>% group_by(Species) %>% summarise(Sepal.Length.avg=mean(Sepal.Length)) %>% arrange(-Sepal.Length.avg)#将平均值从大到小排序

图7 分组以及计算均值结果

图8 均值排序结果

2.10 添加新的列向量–mutate函数

dplyr::mutate(iris,new=Sepal.Length+Petal.Length)#将花萼和花瓣长度相加后的值赋值给new变量,并添加到数据框中

图9 添加新列

3. 链式操作符%>%

两个百分号中间夹着一个大于号,称为链式操作符,它功能是用于实现将一个函数的输出传递给下一个函数,作为下一个函数的输入。类似于Linux系统中的管道函数。在Rstudio中可以使用ctrl +shift+M快捷键输出出来。

head(mtcars,20) %>% tail(10)#先取出mtcars数据集中前20行,紧接着取这前20行数据的后10行

在dplyr中经常使用这个符号。

4. 对双表格操作

操作的内容主要就是将两个表格的内容进行整合

4.1 左连接(left_join),右连接(right_join),内连接(inner_join),全连接(full_join),反连接(semi_join)和半连接(anti_join)

a=data.frame(x1=c("A","B","C"),x2=c(1,2,3))
b=data.frame(x1=c("A","B","D"),x3=c(T,F,T))
dplyr::left_join(a,b,by="x1")
dplyr::right_join(a,b,by="x1")
dplyr::inner_join(a,b,by="x1")#取x1列的交集
dplyr::full_join(a,b,by="x1")#取x1列的并集
dplyr::semi_join(a,b,by="x1")#根据右侧表的内容对左侧表进行过滤,输出出a中与b的交集部分
dplyr::anti_join(a,b,by="x1")#根据右侧表的内容对左侧表进行过滤,输出出a中与b的补集部分

4.2 取交集(intersect),取并集(union_all),取非冗余的并集(union),取补集(setdiff)

first <- slice(mtcars,1:20)#取mtcars数据集前20行
second<-slice(mtcars,10:30)#取mtcars数据集第10到第30行
dplyr::intersect(first,second)#取两者交集
dplyr::union_all(first,second)#取两者并集,包含重复
dplyr::union(first,second)#取两者并集,去除重复
dplyr::setdiff(first,second)#取出first集合中去除与second交集的部分

图10 setdiff函数

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

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

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

相关文章

seo整站优化导航千万不要用Flash

seo整站优化导航千万不要用Flash

你们了解过seo整站优化吗?我们公司的整站优化服务是有专门客服一对一服务的,使用的爬虫工具可以将该网站中所有栏目的数据都抓出来,感兴趣的话就随小编一起来了解下吧! 网站地图 网站地图是给百度提供的,较好是用一般的静态页面。seo百度搜索推广步骤seo肇庆seo优化效果百度搜索推广过程四。如果网站...

如何做好新用户激励?以美团等为例

如何做好新用户激励?以美团等为例

新人留存对App的意义相信各位大多知晓这里也不用我再赘言了。如何做好新人留存却不是件简单的事情,靠渠道的力量拉来诸多用户但如何能让用户留下来则是产品的运营都需要考虑的问题。这篇文章主要和大家聊聊如何做好新用户激励。 电商类 美团 具体呈现: AB两种新人尊享礼包的呈现位置...

从搜索引擎优化的目的与优势倡导企业网站做seo优化。

从搜索引擎优化的目的与优势倡导企业网站做seo优化。

现在有数亿公司在互联网上推广,但是大公司和小公司的许多新建网站很难被客户看到。此时,我们需要使用网站优化来提高我们网站的自然排名。所以现在,网站优化对于企业来说是非常重要的。这是打开互联网企业大门的关键,如果你是S.EO没有概念,那么你总是知道百度,毕竟,你遇到了什么问题,首先要找的是搜索引擎,好像...

小红书日引流1000+顾客,该怎么做?

小红书日引流1000+顾客,该怎么做?

 │前言 │  小红书上的引流变现的逻辑是:选题—封面标题—内容评论—钩子—私域—成交—裂变; 如果你想要在小红书上做正确、安全引流,一定是小心翼翼的,不要被引流的幌子做迷惑,而是要理解它的底层逻辑。 作为公司的一把手可能没有深刻的体验,小红书运营应该很有共鸣,会...

101款你必须知道的APP运营推广神器

101款你必须知道的APP运营推广神器

一、运营推广干货网站及投稿平台   这是一个不学习就淘汰的时代。对于运营推广人而言,不管是小白,还是大神,都在汲取着不断变化的知识,而这些知识往往来源于一些垂直APP干货网站和各大自媒体平台,涉及APP推广、产品运营、产品经理、UI设计、移动互联网、微信营销推广、苹果竞价、手...

淘宝联盟推广教程,如何收费(淘宝联盟怎么推广赚钱技巧)

淘宝联盟推广教程,如何收费(淘宝联盟怎么推广赚钱技巧)

大家先打开百度网页,搜索淘宝联盟,然后点击淘宝联盟的官方网站《淘宝联盟,我的舞台》,谁能登陆?阿里巴巴会员和淘宝会员都可以登陆,只要有淘宝账号的就可以登陆。...

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

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