這裏我data.frame的示例:移位行按組由隨機產生的增量噸
df = read.table(text = 'ID Day
101 0
101 0
101 1
300 40
300 40
270 32
270 35
100 1450
100 1450
100 1451
72 1490
72 1499', header = TRUE)
假設每個Day
OBS代表了真正的日期和時間週期的範圍從Day
= 0至Day
= 1500,我需要通過Day
(△t)的隨機量,具體爲每個組的每個組ID
移位並且如果Day
值從0
例如再次通過1500開始由5
這裏我的期望的輸出組101由第30天,通過100組300通過70,組270由1000,組100和組72:
ID Day
101 30
101 30
101 31
300 110
300 110
270 1032
270 1035
100 1550
100 1550
100 1551
72 1495
72 3
注意,在Day
移位每組必須是隨機的。
任何幫助將非常感激。
感謝
不知道如果我得到它,但'data.table'你可以試試'setDT(DF),Day_new:=(日+ runif(uniqueN(ID),0,1500) )%% 1500,由= ID]'。 – nicola
對不起,但它不工作,謝謝 – aaaaa
我相信的訣竅是添加隨機數字每個組內的每個ID組 – aaaaa