继续来了解dplyr中的其他有用函数

1、sample()

目的是可以从一个数据框中,随机抽取一些行,然后组成新的数据框。

sample_n(tbl, size, replace = FALSE, weight = NULL, .env = parent.frame())

sample_frac(tbl, size = 1, replace = FALSE, weight = NULL, .env = parent.frame())

从参数来看,sample输入数据是tbl格式,size表示抽取的个数,replace指的是能否重复抽取,weight指的是抽取比重。

另外,sample_frac是按照比例进行抽样。

下面来看些具体的例子

sample_n(mtcars, 10)

sample_n(mtcars, 20, replace = TRUE)

sample_n(group_by(mtcars,cyl), 3)

对数据分组后,再进行抽样是按照每组个抽取size个数的数据进行抽样。

sample_frac(mtcars, 0.1)

表示从数据从随机抽取1%的数据。

2、对两个数据集进行操作的函数 

intersect(x, y, ...)

union(x, y, ...)

union_all(x, y, ...)

setdiff(x, y, ...)

setequal(x, y, ...)

intersect 用于求两个函数的交集部分数据,union求并集部分数据,union_all求两个数据集的合集,

setdiff求两个数据集差异部分,setequal判别两个数据集是否相同

下面来看些具体的例子

mtcars$model <- rownames(mtcars)
first <- mtcars[1:20, ]
second <- mtcars[10:32, ]

first 数据集打印结果

second数据集打印结果

intersect(first, second)

union(first, second)

setdiff(first, second)

setdiff(second, first)

这里值得注意的是,setdiff(first, second) 和 setdiff(second, first)的结果是不一样的。

setequal(mtcars, mtcars[32:1, ])

TRUE  

  

3、slice()

按照具体数据所在行进行抽取数据,即定向抽取数据。

slice(.data, ...)

下面来看些具体的例子

slice(mtcars, 1L)

抽取第一行数据

slice(mtcars, n())

抽取最后一行数据

slice(mtcars, 25:n())

抽取第25行到最后一行数据

slice(group_by(mtcars, cyl), 1:2)

按照cyl分组后,每组抽取前两行数据

当然以上各组数据的抽取也可以用filter函数进行实现

filter(mtcars, row_number() == 1L)
filter(mtcars, row_number() == n())
filter(mtcars, between(row_number(), 5, n()))

  

3、tally()

用于统计数据行数

tally(x, wt, sort = FALSE)

count(x, ..., wt = NULL, sort = FALSE)

直接根据实例来观察这个几个函数的区别

tally(mtcars)

直接返回mtcars总行数。

count(mtcars)

也是返回mtcars总行数

tally(mtcars,cyl)

 

返回cyl列所有数据求和后的结果

count(mtcars,cyl)

返回每个cyl并统计每个值得个数。

tally(group_by(mtcars,cyl))

与上面count(mtcars,cyl)的效果一致。

tally(group_by(mtcars,cyl),mpg)

 

根据cyl分组后,对mpg进行求和

count(group_by(mtcars,cyl),mpg)

进行多次分组统计。 

dplyr 数据操作 常用函数(5)的更多相关文章

  1. dplyr 数据操作 常用函数(4)

    接下来我们继续了解一些dplyr中的常用函数. 1.ranking 以下各个函数可以实现对数据进行不同的排序 row_number(x) ntile(x, n) min_rank(x) dense_r ...

  2. dplyr 数据操作 常用函数(3)

    接下了我们继续了解dplyr中有用的函数 1.if_else() if_else主要用于在数据做判断用 x<-data.frame(id=1:6, name=c("wang" ...

  3. dplyr 数据操作 常用函数(2)

    继上一节常用函数,继续了解其他函数 1.desc() 这个函数和SQL中的排序用法是一样的,表示对数据进行倒序排序. 接下来我们看些例子. a=sample(20,50,rep=T)a desc(a) ...

  4. dplyr 数据操作 常用函数(1)

    上面介绍完dplyr中,几个主要的操作函数后,我们再进一步了解dplyr中那些函数可能我们会经常要用到. 这里主要根据dplyr包作者的书籍目录来把它列出来. 1.add_rownames 添加行名称 ...

  5. php中文件操作常用函数有哪些

    php中文件操作常用函数有哪些 一.总结 一句话总结:读写文件函数 判断文件或者目录是否存在函数 创建目录函数 file_exists() mkdir() file_get_content() fil ...

  6. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  7. dplyr 数据操作 列操作(select / mutate)

    在R中,我们通常需要对数据列进行各种各样的操作,比如选取某一列.重命名某一列等. dplyr中的select函数子在数据列的操作上也同样表现了它的简洁性,而且各种操作眼花缭乱. select(.dat ...

  8. C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  9. python学习笔记3.1_数据读取常用函数参数

    一.read_table/read_csv常用函数参数 1.path:表明文件系统位置的字符串.url或文件型对象 2.sep或delimiter:用于分隔每行字段的字符序列或正则表达式 3.head ...

随机推荐

  1. 字符串拼接 strcat ;数组和指针的区别

    问题:字符串拼接 strcat 方法1: 开辟新空间,存放结果: #include <stdio.h> #include <stdlib.h> #include <str ...

  2. Github官方app分析——用户身份验证模块

    这篇文章记述的是我对Giuhub官方app的用户身份验证模块的分析. Giuhub的官方app虽然是一个非常小众的程序,但是从程序的设计的角度看,这是一个非常优秀的项目.对于其用户身份验证模块,给我留 ...

  3. springMVC3学习(四)--访问静态文件如js,jpg,css

    如果你的DispatcherServlet拦截的是*.do这样的URL,就不存在访问不到静态资源的问题 如果你的DispatcherServlet拦截了"/"所有的请求,那同时对* ...

  4. Exchange 2016 创建日程,远程服务器返回错误: (401) 未经授权

    背景:在测试环境中一切正常,使用的是Exchange2013,上生产环境Exchange2016,部署后产生如下错误: Microsoft.Exchange.WebServices.Data.Serv ...

  5. speedbar , tabbar 还有linum-mode

    我的Emacs折腾经验谈(三) speedbar , tabbar 还有linum-mode 离上一篇博客已经很遥远了,最近总是各种逛,但没有心思静下来写点东西,这回写一下我之前用的一些东西. Spe ...

  6. 我的Emacs折腾经验谈(四) 也谈Yasnippet

    又是好久没更新了,不过还好,现在慢慢有点感觉了,好长时间不写博客会心里有点感觉欠一点什么东西.觉得每次写了东西都往主页推搞得压力好大,以后就不往网站首页推了,纯留下来供参考,另外就是主要方便从搜索找过 ...

  7. ToList<>()所带来的性能影响

    ToList<>()所带来的性能影响  前几天优化师弟写的代码,有一个地方给我留下很深刻的印象,就是我发现他总是将PLINQ的结果ToList<>(),然后再返回给主程序,对于 ...

  8. 图解JOIN

    阅读导航 一.概要 二.JOIN分类 三.JOIN分类详解 一.概要 JOIN对于接触过数据库的人,这个词都不陌生,而且很多人很清楚各种JOIN,还有很多人对这个理解也不是很透彻,这次就说说JOIN操 ...

  9. ffmpeg利用libav库把yuv视频流转换为TS串流

    今天到月末了,才发我这个月的第一篇文章,因为这个月前三周一直在看ffmpeg的libavcodec和libavformat两个库源码.实验室要做一个“小传大”的软件,就是android手机或平板电脑的 ...

  10. 方法控件[置顶] Asp.net总结(一)

    本文朋友在青岛逛街的时候突然想到的...这两天就有想写几篇关于方法控件的博客,所以回家到之后就奋笔疾书的写出来发表了 纵观 Asp.net的学习只会之路,可以发现 Asp.net可以分为以下几大块 控 ...