dplyr包笔记

简介: dplyr包是R语言数据处理的神器,这里记录一点刚学到的东西。以下操作基于R语言自带数据集"mtcars".变量选取: selectstarts_with(): starts with a prefixends_with(): ends wi...

dplyr包是R语言数据处理的神器,这里记录一点刚学到的东西。

以下操作基于R语言自带数据集"mtcars".

变量选取: select

  • starts_with(): starts with a prefix
  • ends_with(): ends with a prefix
  • contains(): contains a literal string
  • matches(): matches a regular expression
  • num_range(): a numerical range like x01, x02, x03.
  • one_of(): variables in character vector.
  • everything(): all variables.

观测值过滤: filter

dplyr提供filter,filter_at,filter_all,filter_if用来对行数据进行过滤,仅保留符合要求的行。

filter用来处理特定的几个变量,比如说:

# 保留mtcars中cyl为6的行
filter(mtcars, cyl==6)
# 保留cyl为6但是vs不为0的行
filter(mtcars, cyl==6, vs != 0)

功能比较简单,适用于处理特定几列。但是如果你想要在包含10多个变量的数据框中找到包含NA的行,肯定不能逐个变量写判断语句,这就需要用到filter_all

filter_all(mtcars, any_vars(is.na(.)))

这里的any_vars表示任意一列,.则指代当前选定列,那么is.na(.)就会返回当前列的布尔值向量。

或者如果你的变量命命名很有特点,那么可以使用filter_at判断变量名是否符合要求来选择列:

#判断变量名里有‘d’的列是否为NA.
filter_at(mtcars, vars(contains('d')), any_vars(is.na(.)))
# 判断变量名中含有'd'的列中,所有值是否都大于3
filter_at(mtcars, vars(contains('d')), all_vars(.>3))

这里的vars()函数用于选择变量,可以用select里用到筛选函数对变量名进行判断, 比如说contains()就返回变量命包含某个字符的变量。

更复杂一点,如果我们仅需要对那些整数列进行筛选,那么就需要用到filter_if, 因为它的第二个参数会传递给rlang::as_function用于构造闭包,而闭包则是一种函数。

filter_if(mtcars, ~all(floor(.) == .), all_vars(.!=0))

~all(floor(.) ==.)的参数选择下,最后是对cyl, hp, vs, am, gear, carb这几列进行处理,可以用如下的方式进行验证。

filter_if(mtcars, ~ all(floor(.) == .), all_vars(. == 4))

由于hpb里不存在一个值为4,那么all_vars返回的是全FALSE的向量。

目录
相关文章
|
6月前
|
Python
Python包 - networkx详细拆解
Python包 - networkx详细拆解
49 0
R语言之 dplyr 包
R语言之 dplyr 包
118 1
|
机器学习/深度学习 数据挖掘 数据格式
R语言之基本包
R语言之基本包
98 0
|
数据处理
R语言-数据处理:dplyr包的summarise函数汇总用法
summarise 函数是dplyr中非常常用的函数,可以快速、高效地计算出每个变量的统计量。本文分享了这个函数的一些最常用用法以供参考
1492 0
|
Python
Python 3.8.8 几个常用库的下载和离线包的制作安装
Python 3.8.8 几个常用库的下载和离线包的制作安装
2670 0
|
人工智能 Python
用python gdal包处理tif遥感图像
用python gdal包处理tif遥感图像
352 0
用python gdal包处理tif遥感图像
|
Python
python3.5如何安装statsmodels包?
python3.5如何安装statsmodels包?
356 0
|
索引 Python
Python打包函数zip——整理电影票房(学习笔记)
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
Python打包函数zip——整理电影票房(学习笔记)
|
数据可视化 数据安全/隐私保护
与 ggplot2 包相关的 109 种拓展包
该网站一共汇总了 109 种与ggplot2 包相关的拓展包,并且在不断更新中。拓展包与 ggplot2 包可以无缝连接。
200 0