etiennebacher/flir

`all(!is.na())` -> `!anyNA()`

オープン

#97 opened on 2025/07/11

 (0 件のコメント) (0 件のリアクション) (0 人の担当者)R (3 件のフォーク)auto 404
enhancementgood first issue

Repository metrics

Stars
 (88 個のスター)
PR merge metrics
 (30d に merged PR はありません)

説明

n <- 1e7

##### Integers

no_na <- sample(1:100, n, replace = TRUE)
some_na <- sample(c(1:100, NA), n, replace = TRUE)
only_na <- rep(NA, n)

bench::mark(
  all(!is.na(no_na)),
  !anyNA(no_na)
)
#> Warning: Some expressions had a GC in every iteration; so filtering is
#> disabled.
#> # A tibble: 2 × 6
#>   expression              min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>         <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(no_na))  38.96ms   40.7ms      23.6    76.3MB     23.6
#> 2 !anyNA(no_na)        2.72ms    2.8ms     346.         0B      0

bench::mark(
  all(!is.na(some_na)),
  !anyNA(some_na)
)
#> Warning: Some expressions had a GC in every iteration; so filtering is
#> disabled.
#> # A tibble: 2 × 6
#>   expression                min   median  `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>           <bch:tm> <bch:tm>      <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(some_na))   30.3ms   33.1ms       28.6    76.3MB     28.6
#> 2 !anyNA(some_na)             0    100ns 14724688.         0B      0

bench::mark(
  all(!is.na(only_na)),
  !anyNA(only_na)
)
#> Warning: Some expressions had a GC in every iteration; so filtering is
#> disabled.
#> # A tibble: 2 × 6
#>   expression                min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>           <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(only_na))   31.2ms     32ms      29.8    76.3MB     29.8
#> 2 !anyNA(only_na)             0    100ns 7926856.         0B      0


##### Strings

no_na <- sample(letters, n, replace = TRUE)
some_na <- sample(c(letters, NA), n, replace = TRUE)
only_na <- rep(NA, n)

bench::mark(
  all(!is.na(no_na)),
  !anyNA(no_na)
)
#> # A tibble: 2 × 6
#>   expression              min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>         <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(no_na))  33.18ms   34.1ms      29.0    76.3MB     20.7
#> 2 !anyNA(no_na)        4.17ms   5.16ms     182.         0B      0

bench::mark(
  all(!is.na(some_na)),
  !anyNA(some_na)
)
#> # A tibble: 2 × 6
#>   expression                min   median  `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>           <bch:tm> <bch:tm>      <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(some_na))   25.4ms   26.9ms       37.0    76.3MB     22.2
#> 2 !anyNA(some_na)             0      1ns 17097081.         0B      0

bench::mark(
  all(!is.na(only_na)),
  !anyNA(only_na)
)
#> # A tibble: 2 × 6
#>   expression                min   median  `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>           <bch:tm> <bch:tm>      <dbl> <bch:byt>    <dbl>
#> 1 all(!is.na(only_na))   24.4ms   30.2ms       33.3    76.3MB     18.5
#> 2 !anyNA(only_na)             0    100ns 10787728.         0B      0

Created on 2025-07-11 with reprex v2.1.1

コントリビューターガイド