我試圖在RMark之內創建(在R中)使用歷史記錄;即如果遭遇已經發生,則返回「1」,如果沒有發生,返回「0」。計算標記重獲模型的遭遇歷史
的樣本數據:
zm <- structure(list(date.time = structure(c(1365905306, 1365919237,
1365923863, 1365929487, 1365931725, 1365942003, 1365945361, 1366143204,
1366159355, 1366159863, 1366164285, 1366202496, 1366224357, 1366238428,
1366243685, 1366250254, 1366252570, 1366314236, 1366315282, 1366386242
), class = c("POSIXct", "POSIXt"), tzone = ""), station = c("M1",
"M2", "M2", "M3", "M4", "M3", "M4", "M7", "L1", "M1", "M2", "M2",
"L4", "M2", "M2", "M3", "M4", "M1", "M2", "M1"), code = c(10908,
10908, 10897, 10908, 10908, 10897, 10897, 10908, 10908, 10914,
10914, 10916, 10908, 10917, 10910, 10917, 10917, 10913, 10913,
10896)), .Names = c("date.time", "station", "code"), row.names = c(5349L,
51L, 60L, 7168L, 65L, 7178L, 70L, 6968L, 8647L, 5362L, 79L, 94L,
9027L, 96L, 105L, 7200L, 114L, 5382L, 123L, 5388L), class = "data.frame")
可能遭遇歷史(站,以檢查是否發生或不遭遇):
rec<- c("M1", "M2","M3","M4","M5","M6","M7")
什麼是重要的是,遭遇歷史輸出指的rec
順序以上。
因此,對於每一個code
我想看看它在第一站檢測,即"M1"
如果是這樣,然後返回一個「1」,然後看它是否是在第二站"M2"
檢測,如果沒有返回一個「0 「;這最終會以0和1的字符串結尾。
我能夠得到的數據是在rec
通過:
library("plyr")
zm2 <- ddply(zm, c("code"), function(df)
data.frame(arrive=(df[which(df$station %in% rec),])))
但是我不確定如何在rec
才能運行這個,然後返回一個「0」或「1」。
最後,我希望有一個data.frame輸出結構如下:
ch code
00101 1
00011 2
等等...
也許'table'有幫助嗎? '表(zm $ code,zm $ station)' –