R- Montecarlo仿真 - 创建100个数据.用随机分组的行,随后的天数固定



在这里是我的data.frame的示例,让我们假设 date col代表天:

df = read.table(text = 'ID date
a 1
a 2
a 3
a 4
a 7
a 12', header = TRUE)

所以,我的日子在1到12范围内,我想创建100个数据。在其中,每一个 date(and ID(col将在3个后续几天内随机分组。

例如。

df1

ID date group
    a 1 1   #group 1 = 1, 2, 3
    a 2 1
    a 3 1
    a 4 2   # group 2 = 4, 5, 6
    a 7 3   # group 3 = 7, 8, 9
    a 12 4  # group 4 = 10, 11, 12

df2

ID date group
    a 1 4
    a 2 1  #group 1 = 2, 3, 4
    a 3 1
    a 4 1
    a 7 2  #group 2 = 5, 6, 7  ---  group 3 = 8, 9, 10
    a 12 4 # group 4 = 11, 12 and start again from the beginning 1

df3

ID date group
    a 1 1
    a 2 1
    a 3 2  #group 2 = 3, 4, 5
    a 4 2
    a 7 3  #group 3 = 6, 7, 8 -- group 4 = 9, 10, 11
    a 12 1   #group 1 = 12, 1, 2

等...

请注意,group col组通过考虑以后的几天来排行3,而后者不一定出现在数据中。框架和整个技巧的随机性是第1组的开始。

您有什么建议吗?

不确定,但是您可以创建一个空列表并填写与您的示例类似的新数据帧:

set=list()
for(i in 1:100) { set[[i]] = cbind(df,group=sample(rep(c(1,2),each=3))) }

最新更新