在这里是我的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))) }