データセット内の個別のIDごとに作成されたrle()クラスオブジェクトがあり、それらの分布を把握するために、さまざまな長さのクラスの頻度を表示する個別のヒストグラムにプロットしたいのですが、できます。これを行う方法を理解しているようです。
次のコードを使用して、さまざまなIDのデータに対してrle()関数を実行することにより、rle()クラスオブジェクトのリストを取得しました。
list.runs<-dlply(data.1, .(ID), function(x) rle(x$flights))
ただし、これにより、rle()オブジェクトをデータフレームに強制変換できなかったため、データをデータフレームに転送できなくなりました。したがって、私はそれらを分類解除しました:
list.runs<-dlply(data.1, .(ID), function(x) unclass(rle(x$flights)))
ただし、リストの長さが異なるため、このデータをデータフレームに入れることはできません。
runs<-ldply(do.call(data.frame,list.runs))
Error in function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 14, 13
質問:個別のIDごとに長さの値のヒストグラムをプロットするにはどうすればよいですか?
データ(簡略化):
> dput(data.1)
structure(list(ID = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), flights = c(1, 1, 1,
1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1,
0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1,
1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1,
1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0,
1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1)), .Names = c("ID", "flights"
), row.names = c(NA, -100L), class = "data.frame")