使用R,我試圖計算每個個體,其中該持續時間超過特定閾值所花費的時間的總持續時間。如何計算多次跨越閾值的濃度總時間?
例如,在圖中下面我有3名受試者(ID)的濃度數據,我想找到的時間(x軸)花費上方的藍色虛線爲每個單獨的。該數據集的結構會是這樣的:
head(dataset)
ID time CP
1 1 0.0 0.00000000
2 1 0.0 0.00000000
3 1 0.5 0.03759806
4 1 1.0 0.12523455
5 1 1.5 0.23483219
6 1 2.0 0.34820905
Solid lines represent the concentrations for 3 different subjects
我試着用下面的代碼:
library(data.table)
TAbove<-setDT(dataset)[CP > .05, diff(range(time)), by = ID]
但是,此代碼,它從上面的第一上升計算的持續時間藍色虛線到最後一滴。例如,對於綠線ID,請參閱黑線。
我怎麼可以編寫考慮到了濃度下降虛線下方的時間,排除他們的代碼。最終的結果將是藍色虛線以上的所有時間的總持續時間。像下面
見'?rle'。暫時忽略的多個ID,具有,比如說,'X = SIN(SEQ(-3 * PI,3 * PI,0.1))'和計算的r = RLE(X>閾值)',起始和結束位置連續'TRUE's(即'X> threshold')是'S = cumsum(C(1,R $長度))[R $值]''和E = 1 + R $長度[R $值] - 1'。總結'time [e] - time [s]'應該給出'x> threshold'的總時間。 –