6.20 对符合条件的列操作

# 数值型变量的列的位置
which(sapply(iris, is.numeric))
## Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
##            1            2            3            4
iris[, sapply(iris, is.numeric), with = F][Sepal.Length > 7.5]
##    Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1:          7.6         3.0          6.6         2.1
## 2:          7.7         3.8          6.7         2.2
## 3:          7.7         2.6          6.9         2.3
## 4:          7.7         2.8          6.7         2.0
## 5:          7.9         3.8          6.4         2.0
## 6:          7.7         3.0          6.1         2.3
class(iris)
## [1] "data.table" "data.frame"

用 Base R 提供的管道符号 |> 将 data.table 数据操作与 ggplot2 数据可视化连接起来

library(ggplot2)
iris |>
  subset(Species == "setosa" & Sepal.Length > 5.5) |>
  # 行过滤
  # subset(select = grep("Sepal", colnames(iris), value = TRUE)) |> # 列过滤
  subset(select = grepl("Sepal", colnames(iris))) |>
  ggplot(aes(x = Sepal.Length, y = Sepal.Width)) + # 绘图
  geom_point()
管道连接数据操作和可视化

图 6.7: 管道连接数据操作和可视化