📜  使用 Dplyr 过滤或子集 R 中的行(1)

📅  最后修改于: 2023-12-03 14:49:39.041000             🧑  作者: Mango

使用 Dplyr 过滤或子集 R 中的行

简介

Dplyr 是一个 R 数据框框架操作库,它可以非常方便地对数据进行过滤、排序、汇总等常见操作。本篇简要介绍 Dplyr 中过滤或子集 R 中的行的方法。

安装 Dplyr

你可以使用以下代码安装 Dplyr:

install.packages('dplyr')
数据框示例

我们使用一个示例数据框 cars:

library(dplyr)
cars <- data.frame(
  make = c("Honda", "Toyota", "Honda", "Ford", "Toyota"),
  model = c("Civic", "Corolla", "Accord", "F-150", "RAV4"),
  year = c(2020, 2019, 2020, 2018, 2020),
  price = c(20000, 22000, 23000, 25000, 24000),
  mileage = c(3000, 2000, 4000, 1500, 2500)
)
过滤

Dplyr 中过滤的函数为 filter(),它以数据框为第一个参数,后面是一些由逗号分隔的条件,比如:

cylinder > 4
mpg < 20
year == 2015

下面我们通过示例对数据框 cars 进行过滤:

过滤出年份为 2020 的车型
filtered_cars <- filter(cars, year == 2020)

注:dplyr 与第三方包 data.table 一样强调链式语法,pipe 代表的是链式语法符号 %>%。

上述代码使用了管道操作符 %>%,该操作符可以让代码更具可读性和协作性,相当于写成:

filtered_cars <- cars %>%
   filter(year == 2020)
过滤出年份为 2020,且价格小于 25,000 的车型
filtered_cars <- filter(cars, year == 2020 & price < 25000)
子集

Dplyr 中子集的函数为 slice(),它以数据框为第一个参数,后面是一些由逗号分隔的行序号,比如:

1:10
c(1,3,5,7)

下面我们通过示例对数据框 cars 进行子集操作:

取前两行
subset_cars <- slice(cars, 1:2)
取第二行和第四行
subset_cars <- slice(cars, c(2,4))
结论

Dplyr 是一个非常实用的数据框框架操作库,你可以使用它来高效地进行过滤和子集操作。在实际工作中,你应该根据具体情况选择合适的函数,并结合链式语法使代码更加简洁优美。