potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

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