R言語で、リストまたはベクトルからFALSEと評価される要素を抽出する方法について解説します。ここではtidyverseパッケージに含まれているpurrrパッケージのdiscard()を使用した方法についてお伝えします。
目次
discard()の概要
discard()は、リストまたはベクトルからFALSEと評価される要素を抽出するための関数です。
discard()の使い方
discard(.x, .p, ...)
discard()の引数
.x
リストまたはベクトルを指定します。
.p
述語関数 (つまり、TRUEまたはFALSEを返す関数) は、次のいずれかの方法で指定します。
- 名前付き関数(例: is.character)。
- 匿名関数 (例: \(x) all(x < 0) または function(x) all(x < 0)。
- 数式 (例: ~ all(.x < 0)。最初の引数を参照するには、.x を使用する必要があります)。R の古いバージョンとの下位互換性が必要な場合にのみ推奨されます。
…
.p に渡される追加の引数を指定します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
discard()の使用例
リストからFALSEと評価される要素を抽出する
次は、要素x1に1から10までの数値、要素x2に1から5までの数値、要素x3に5から10までの数値が格納されているリストxに対して、各要素の平均値が5より大きくない要素を抽出するコードです。
x <- list( x1 = 1:10, x2 = 1:5, x3 = 5:10 ) discard(x, ~ mean(.x) > 5)
$x2
[1] 1 2 3 4 5
ベクトルからFALSEと評価される要素を抽出する
次は、1から10までの数値ベクトルに対して、偶数でない数値を抽出するコードです。
x <- 1:10
discard(x, ~ .x %% 2 == 0)
[1] 1 3 5 7 9
R×purrr::discard リストまたはベクトルからFALSEと評価される要素を抽出する