几种方法过滤R语言数据框

数据过滤是清洗过程的基本操作之一。R有很多方式可以实现,本文介绍几种常用方法,包括基本的数据框访问方式以及 dplyr包的强大功能。

1. 示例数据

data <- data.frame(var=c(2,4,6,8,10,12,14,16))

我们定义了示例数据,假设我们需要返回大于10的数据。

2. 过滤数据

2.1 通过行、列方式
> data[data[,"var"]>10,]
[1] 12 14 16

因为数据框有行和列组成,data[,"var"] 表示所有行,列为var ;data[,"var"]>10 整体表示符合变量 var大于 10 的行,后面空格所有列。我们只有一列,也可以写成 : data[data[,"var"]>10,"var"]

2.2 通过变量方式
> data[data$var>10,]
[1] 12 14 16

data$var>10 直接变量访问数据库列数据,整体表示这列数据大于的所有行,后面的逗号表示所有列。

2.3 通过subset方式
> subset(data,var>10)
  var
6  12
7  14
8  16
2.4 使用 dplyr
> library(dplyr)

载入程辑包:‘dplyr’

> filter(data,var>10)
  var
1  12
2  14
3  16

保存结果:

library(dplyr)
df <- filter(mtcars, mpg > 25)

3. dplyr 过滤语法及示例

3.1 dplyr 条件运算符

filter函数主要包括两个参数,第一个为要操作的数据框,第二个为条件,返回true 和 false。

关系运算主要包括:

  • == (Equal to)
  • != (Not equal to)
  • < (Less than)
  • <= (Less than or equal to)
  • > (Greater than)
  • >= (Greater than or equal to)

逻辑运算:

  • ! (logical NOT)
  • & (logical AND)
  • | (logical OR)

另外还有两个常用操作:

  • %in% (检查值是否再多值的数组中)
  • is.na() (检查值是否为 NA)
3.2 示例代码
install.packages('ggplot2')
library('ggplot2')
diamonds
# 数值类型过滤
filter(diamonds, price > 2000)
# 字符串类型过滤
filter(diamonds, cut != 'Ideal')
# 多个数值类型条件
filter(diamonds, price >= 1000 & price <= 1500)、
# 过滤类型变量
filter(diamonds, cut %in% c('Ideal', 'Premium'))
# 也可以先定义向量变量
cuts_to_include <- c('Good', 'Very Good', 'Ideal', 'Premium')
filter(diamonds, cut %in% cuts_to_include)

多条件组合示例:

# 链接多个条件
filter(diamonds, cut == 'Ideal' & carat > 1)
filter(diamonds, cut == 'Ideal' & carat > 1 & color == 'E')
filter(diamonds, cut == 'Ideal' | carat > 1)

4. 总结

本文介绍了4中方式过滤数据框数据,其中 dplyrfliter功能非常强大。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值