這一個掙扎:
的樣本數據:[R骨料與RLE功能
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")))
如何組論文DATAS按周和應用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),我可以然後計算並得到預期的輸出。但我相信有一個更清晰的方式來實現這一目標......任何想法?
感謝您的期待!
你真的有矩陣輸入,想要矩陣輸出嗎?你如何確定輸出值?我看不出'out'中的11h列('vr')不是2(或者都是1 ...)你在尋找每週的跑步次數嗎? – Justin
是的,矩陣作爲輸入和輸出。輸出值是每週運行的次數。是的vr in out應該都是2,編輯問題。 – Chargaff
幾乎...好主意。不知道我可以使用條件內的條件。如果我理解你的代碼 ,你可以通過指定長度> 1來「省略」NA值嗎? 是嗎?問題是我需要總結 那些長度爲1的運行... – Chargaff