在这种情况下,您将使用功能/功能工厂,例如。
f <- function(gear_val) {
function(x, pos) {
dplyr::filter(x, .data[["gear"]] == gear_val)
}
}
readr::read_csv_chunked(
readr::readr_example("mtcars.csv"),
readr::DataFrameCallback$new(f(gear_val = 3)),
chunk_size = 5
)
#> Parsed with column specification:
#> cols(
#> mpg = col_double(),
#> cyl = col_double(),
#> disp = col_double(),
#> hp = col_double(),
#> drat = col_double(),
#> wt = col_double(),
#> qsec = col_double(),
#> vs = col_double(),
#> am = col_double(),
#> gear = col_double(),
#> carb = col_double()
#> )
#> # A tibble: 15 x 11
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21.4 6. 258. 110. 3.08 3.22 19.4 1. 0. 3. 1.
#> 2 18.7 8. 360. 175. 3.15 3.44 17.0 0. 0. 3. 2.
#> 3 18.1 6. 225. 105. 2.76 3.46 20.2 1. 0. 3. 1.
#> 4 14.3 8. 360. 245. 3.21 3.57 15.8 0. 0. 3. 4.
#> 5 16.4 8. 276. 180. 3.07 4.07 17.4 0. 0. 3. 3.
#> 6 17.3 8. 276. 180. 3.07 3.73 17.6 0. 0. 3. 3.
#> 7 15.2 8. 276. 180. 3.07 3.78 18.0 0. 0. 3. 3.
#> 8 10.4 8. 472. 205. 2.93 5.25 18.0 0. 0. 3. 4.
#> 9 10.4 8. 460. 215. 3.00 5.42 17.8 0. 0. 3. 4.
#> 10 14.7 8. 440. 230. 3.23 5.34 17.4 0. 0. 3. 4.
#> 11 21.5 4. 120. 97. 3.70 2.46 20.0 1. 0. 3. 1.
#> 12 15.5 8. 318. 150. 2.76 3.52 16.9 0. 0. 3. 2.
#> 13 15.2 8. 304. 150. 3.15 3.44 17.3 0. 0. 3. 2.
#> 14 13.3 8. 350. 245. 3.73 3.84 15.4 0. 0. 3. 4.
#> 15 19.2 8. 400. 175. 3.08 3.84 17.0 0. 0. 3. 2.
创建日期:2018年3月12日
reprex package
(v0.2.0)。