トップ 一覧 検索 ヘルプ RSS ログイン 印刷

bind_rows()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
! データを行に加える

同じ構造のデータフレームが2つ以上あった場合、dpylyr::bind_rows()で一体化させるのは基本動作。

 dplyr::bind_rows(df1, df2)


! リストデータからデータを抜き出す

JSONを扱うとリストの扱いが必ず登場する。

 {
  "updated": "2020/10/21 19:30",
  "total_count": 5,
  "data": {
    "1": {
      "developed_date": "2020-10-15",
      "count": 48
    },
    "2": {
      "developed_date": "2020-10-16",
      "count": 29
    },
    "3": {
      "developed_date": "2020-10-17",
      "count": 27
    },
    "4": {
      "developed_date": "2020-10-18",
      "count": 14
    },
    "5": {
      "developed_date": "2020-10-19",
      "count": 3
     }
   }
 }

上のようなデータtest.jsonがあるときに、developed_date と count とを持つデータフレームを作りたくなる。

 fromJSON("test.json") %>% .$data %>% as_tibble()

としても、リスト構造が残ったフィールドができてしまう。

そんなとき、

 fromJSON("test.json") %>% .$data %>% dplyr::bind_rows()

あるいは、

 jsonlite::read_json("test.json")$data %>% dplyr::bind_rows() %>% dplyr::rename(dd = developed_date, cnt = count)

でデータフレームができてしまう。

* r-wakalangでheavywatalさんに教わった

 > fromJSON("test.json")$data %>% dplyr::bind_rows()
# A tibble: 5 x 2
  developed_date count
  <chr>          <int>
 1 2020-10-15        48
 2 2020-10-16        29
 3 2020-10-17        27
 4 2020-10-18        14
 5 2020-10-19         3