potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

R&tidyverse filterとkeep/discardの使い分け

filterはデータフレームの行選択、keep/discardはベクトルの要素選択です。

require(dplyr)
require(purrr)

1:5 %>% keep(~. %% 2 == 0)    # [2, 4]
1:5 %>% discard(~. %% 2 == 0) # [1, 3, 5]

tibble(A=1:5, B=11:15) %>% filter(A %% 2 == 0)
## A tibble: 2 x 2
#      A     B
#  <int> <int>
#1     2    12
#2     4    14

tibble(A=1:5, B=11:15) %>% filter(A %% 2 != 0)
## A tibble: 3 x 2
#      A     B
#  <int> <int>
#1     1    11
#2     3    13