これに苦労しています:
サンプルデータ:
foo <- structure(c("1", "1", "1", "1", "1", "1", "2", "2", "2", "2",
"2", "2", "2", "2", "2", "C", "C", "C", NA, NA, NA, NA, "C",
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "C",
"C", NA, NA, NA, NA, NA, "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", NA, NA, NA, NA, "C", "C", "C", "C", "C", "C",
"C", "C", NA, NA, NA, NA, NA, NA, NA, NA, "C", "C", "C", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "C", "C", "C", NA, NA,
NA, NA, NA, "C", "C", NA, NA, NA, NA, NA, "C", "C", "C", NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "C", "C", NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", NA, NA, "C", "C", "C", "C", "C", NA, "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", NA, NA, "C", "C", NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), .Dim = c(15L, 13L), .Dimnames = list(NULL, c("weeks",
"vv", "rv", "ja", "aa", "bv", "aj", "vb", "rj", "rr", "vr", "bb",
"jr")))
論文データを週ごとにグループ化し、rle 関数を適用する方法は? 予想される出力は次のとおりです。
out <- structure(c("weeks", "1", "2", "vv", "1", "1", "rv", "0", "1",
"ja", "1", "1", "aa", "1", "1", "bv", "1", "0", "aj", "1", "1",
"vb", "1", "0", "rj", "1", "0", "rr", "1", "1", "vr", "2", "2",
"bb", "1", "1", "jr", "1", "0"), .Dim = c(3L, 13L), .Dimnames = list(
NULL, NULL))
これまでに試した:
test <- aggregate(foo, by=data.frame(foo[,1]), function(x,na.rm=T) rle(as.numeric(x))$values)
(rle で期待されるように) リストが表示されます。これを計算して、期待される出力を取得しようとします。しかし、それを達成するためのよりクリーンな方法があると確信しています...何かアイデアはありますか?
ご覧いただきありがとうございます。