假设我有:
data <- expand.grid(factor1 = c("a","b"),
factor2 = c("left","right"),
factor3 = c("up","down"))
假设我想从这个数据帧中复制行,这样我就可以定义每个因子的频率分布,并且尽可能少地复制每一行以满足该分布。例如,如果我将“factor1”的频率定义为(.5,.5),将“factor2”定义为(.25,。75),将“factor3”定义为(.4,.6),则我的数据框必须有2 X 4 X 5 = 40总行数。我可以这样做:
data2 <- expand.grid(factor1 = c("a","b"),
factor2 = c("left",rep("right",3)),
factor3 = c(rep("up",2),rep("down",3)))
但这只有在我提前了解频率的情况下才有效 - 即便如此,从那里开始({.4,.6)到c(rep("a",2),rep("b",3))
似乎也不那么优雅。有什么更好的方法呢?