我想从大型数据框生成样本,但要求保留一些预先指定的列的固定比例。 以下是使用的简化示例:
set.seed(1234)
respondent <- 1:1000
red <- sample(0:1, 1000, replace=T)
blue <- sample(0:1, 1000, replace=T)
green <- sample(0:1, 1000, replace=T)
black <- sample(0:1, 1000, replace=T)
grey <- sample(0:1, 1000, replace=T)
my.new.df <- data.frame(respondent, red ,blue,green,black,grey)
lapply(my.new.df[,2:6],sum)
$red
[1] 518
$blue
[1] 485
$green
[1] 515
$black
[1] 481
$grey
[1] 508
现在,举个例子,我想从这个my.new.df中取100个样本来保持数据的相关结构:
cor(my.new.df[,2:6])
red blue green black grey
red 1.000000000 0.047131752 0.01293420 0.02740555 0.007429767
blue 0.047131752 1.000000000 -0.03913522 -0.02516950 0.006483748
green 0.012934202 -0.039135222 1.00000000 -0.02288682 -0.066518451
black 0.027405546 -0.025169500 -0.02288682 1.00000000 -0.017406799
grey 0.007429767 0.006483748 -0.06651845 -0.01740680 1.000000000