上下文:據我可以看到,R缺乏一致的功能,這有利於在存活/事件歷史分析,例如上下文數據準備情節分裂包括隨時間變化的協變量(有時被稱爲「計數過程數據」)。查找重疊的間隔
對於每個人(id
),給出每集的開始(start.cp
)和結束時間(stop.cp
)。此外,對於每個1,2,...,P隨時間變化的協變量(TVC),我們知道這一事件開始時(tvc.start_
),當它結束(tvc.stop_
)。
在我的例子(見下文)的TVCS數爲2,但通常的數量可以變化(從1到p)。
實施例:
輸入數據:
id start.cp stop.cp tvc.start1 tvc.start2 tvc.stop1 tvc.stop2
1 1 1 2 2 3 4 7
2 1 2 3 2 3 4 7
3 1 3 4 2 3 4 7
4 1 4 7 2 3 4 7
5 1 7 12 2 3 4 7
structure(list(id = c(1, 1, 1, 1, 1), start.cp = c(1, 2, 3, 4,
7), stop.cp = c(2, 3, 4, 7, 12), tvc.start1 = c(2, 2, 2, 2, 2
), tvc.start2 = c(3, 3, 3, 3, 3), tvc.stop1 = c(4, 4, 4, 4, 4
), tvc.stop2 = c(7, 7, 7, 7, 7)), .Names = c("id", "start.cp",
"stop.cp", "tvc.start1", "tvc.start2", "tvc.stop1", "tvc.stop2"),
row.names = c(NA, 5L), class = "data.frame")
的TVCS的名稱是已知的,即,在這個例子中,已知
tvc.start <- c("tvc.start1", "tvc.start2")
tvc.stop <- c("tvc.stop1", "tvc.stop2")
預期結果:
id start.cp stop.cp tvc.start1 tvc.start2 tvc.stop1 tvc.stop2 tvc.d1 tvc.d2
1 1 1 2 2 3 4 7 0 0
2 1 2 3 2 3 4 7 1 0
3 1 3 4 2 3 4 7 1 0
4 1 4 7 2 3 4 7 0 1
5 1 7 12 2 3 4 7 0 1
structure(list(id = c(1, 1, 1, 1, 1), start.cp = c(1, 2, 3, 4,
7), stop.cp = c(2, 3, 4, 7, 12), tvc.start1 = c(2, 2, 2, 2, 2
), tvc.start2 = c(3, 3, 3, 3, 3), tvc.stop1 = c(4, 4, 4, 4, 4
), tvc.stop2 = c(7, 7, 7, 7, 7), tvc.d1 = c(0, 1, 1, 0, 0), tvc.d2 = c(0,
0, 0, 1, 1)), .Names = c("id", "start.cp", "stop.cp", "tvc.start1",
"tvc.start2", "tvc.stop1", "tvc.stop2", "tvc.d1", "tvc.d2"), row.names = c(NA,
5L), class = "data.frame")
問題:對於每個TVC,我想創建一個新的載體(tvc.d1
,tvc.d2
,參見實施例),其指示給定事件(由start.cp
和stop.cp
定義)重疊(= 1)的間隔的電視廣告。假設[start.cp,stop.cp)。如何在不循環TVC集的情況下做到這一點,即我正在尋找一種矢量化解決方案。
P.S:請隨意更改標題...
是'?findInterval'有用嗎? –
您能否描述一下給出這些數據的預期結果? – Andrie
@Andrie目標(在這個例子中有2個TVC)是創建矢量'tvc.d1'和'tvc.d2'。 –