继续来了解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. TFS二次开发、C#知识点、SQL知识

    TFS二次开发.C#知识点.SQL知识总结目录   TFS二次开发系列 TFS二次开发系列:一.TFS体系结构和概念 TFS二次开发系列:二.TFS的安装 TFS二次开发系列:三.TFS二次开发的第一 ...

  2. poj1837挂砝码

    解法(背包DP问题) (下为转) 其实感觉 像此题这种类型的并不属于dp范畴 虽然程序看起来使用的是递推这一过程,但总不能说开个二重循环就是dp吧 如果只从求解上来讲(不考虑数据值的范围), 只有枚举 ...

  3. 迟到的 WPF 学习 —— 入门

    之所以说"迟到的",是因为我太晚才开始学习 WPF 了,之前 WPF 刚发布的时候有过粗浅了解,那时的 WPF 还非常简陋,VS 提供的内置控件十分匮乏,让我这样的非常依赖 Win ...

  4. Python远程视频监控

    Python远程视频监控程序   老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可 ...

  5. eclipse在Ubuntu 13.04下的安装过程

    eclipse在Ubuntu 13.04下的安装过程及问题小记 一.eclipse安装过程 首先确保在安装eclipse之前已经安装好Java虚拟机 1. eclipse官网下载压缩包 下载地址:ht ...

  6. 【NET】WebBrowser执行脚本以及一般操作代码

    public class WebBrowserAssistant { System.Windows.Forms.WebBrowser wb; public WebBrowserAssistant(Sy ...

  7. 快速开发平台WebBuilder中ExtJS表格的增删改查

    使用WebBuilder可实现表格的自动增删改查功能,而无需编写前台脚本和后台SQL. WebBuilder开源项目地址:http://www.putdb.com 自动生成的页面: <!DOCT ...

  8. 依赖注入DI

    说AOP不得不提依赖注入,先来看看一个实例.通过实例来解释依赖注入和它的用途. 我们现在要设计一个关于衣服的上架功能,有时候需要进行促销,我们现在知道的促销方式有打1折,和打2折. 最初的方案: pu ...

  9. 单一职责原则SRP

    定义: There should nerver be more then one reason for a class to change. 优点: 1.类的复杂性降低,实现什么职责都有清晰明确的定义 ...

  10. ubunt 命令行下链接VPN

    Ubuntu命令行下VPN连接与使用 route add default dev ppp0 route add -net 192.168.2.0 netmask 255.255.255.0 ppp0 ...