概要
dplyr
パッケージに含まれるfilter(), slice()
は、条件と一致する行を取得する関数です。
1 2 3 4 5 | # 論理式と一致する行を取得する filter (.data, ..., .preserve = FALSE ) # 行番号と一致する行を取得する slice (.data, ..., .preserve = FALSE ) |
引数 | 指定 | 説明 |
---|---|---|
.data | 必須 | テーブルを指定する |
… | 必須 | 取得する行の条件(論理式または行番号)を指定する |
.preserve | 任意 | グループ化構造を維持するか再計算するかを指定する デフォルト(FALSE)では再計算を行います |
関連ページ
具体例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | ## テーブルの作成 tbl <- tibble ( x1 = c ( 'A' , 'B' , 'C' ), x2 = c (1, 2, 3), ) ## テーブルの確認 tbl # x1 x2 # <chr> <dbl> # A 1 # B 2 # C 3 ## 1.論理式と一致する行を取得する filter (tbl, x2 %% 2 == 1) # x1 x2 # <chr> <dbl> # A 1 # C 3 ## 2-1.行番号と一致する行を取得する slice (tbl, c (1, 3)) # x1 x2 # <chr> <dbl> # A 1 # C 3 ## 2-2.行番号と一致する行を取得する(補集合) slice (tbl, -1) # x1 x2 # <chr> <dbl> # B 2 # C 3 ## 3-1.グループ化構造を再計算する(デフォルトの挙動) group_by (tbl, x1) %>% filter (x2 %% 2 == 1, .preserve = FALSE ) %>% summarise (n = n ()) # x1 n # <chr> <dbl> # A 1 # C 1 ## 3-2.グループ化構造を維持する group_by (tbl, x1) %>% filter (x2 %% 2 == 1, .preserve = TRUE ) %>% summarise (n = n ()) # x1 n # <chr> <dbl> # A 1 # B 0 # C 1 |