R - 将 n 的样本分成 5 个大小为 x 的组
R - split sample of n into 5 groups of size x
假设我有一个 100 的样本,我想将该样本分成 5 个大小不等的组。但是,我想要每个组的所有可能的大小排列,其中每个组必须由以下样本大小组成 - 5%、10%、20%、50%。因此,例如,一个排列可以是 50%、10%、10%、10%、20%,另一个排列可以是 5%、5%、50%、20%、20%。是否有 r 代码可以帮助我找出所有可能的组大小排列?
data=runif(100)*100
vec= rbind(c(10,10,10,20,50),c(5,5,50,20,20))
datasplit=split(sample(data), rep(1:5, vec[1,]))
我们可以使用 gtools
) 中的函数创建 vector
('v1') 的 combinations/permutations
以获得 matrix
输出。然后,删除元素sum
不等于100(rowSums(m1)==100
)的行。遍历矩阵的行(apply
和 MARGIN = 1
)和 split
'data' 的 sample
根据 [= 行中的值分成 5 组=28=]
library(gtools)
#m1 <- combinations(4, 5, v1, repeats.allowed = TRUE)
m1 <- permutations(4, 5, v1, repeats.allowed = TRUE)
m2 <- m1[rowSums(m1)==100,]
r1 <- apply(m2, 1, FUN = function(x) split(sample(data), rep(1:5, x)))
数据
v1 <- c(5, 10, 20, 50)
set.seed(43)
data <- runif(100)*100
假设我有一个 100 的样本,我想将该样本分成 5 个大小不等的组。但是,我想要每个组的所有可能的大小排列,其中每个组必须由以下样本大小组成 - 5%、10%、20%、50%。因此,例如,一个排列可以是 50%、10%、10%、10%、20%,另一个排列可以是 5%、5%、50%、20%、20%。是否有 r 代码可以帮助我找出所有可能的组大小排列?
data=runif(100)*100
vec= rbind(c(10,10,10,20,50),c(5,5,50,20,20))
datasplit=split(sample(data), rep(1:5, vec[1,]))
我们可以使用 gtools
) 中的函数创建 vector
('v1') 的 combinations/permutations
以获得 matrix
输出。然后,删除元素sum
不等于100(rowSums(m1)==100
)的行。遍历矩阵的行(apply
和 MARGIN = 1
)和 split
'data' 的 sample
根据 [= 行中的值分成 5 组=28=]
library(gtools)
#m1 <- combinations(4, 5, v1, repeats.allowed = TRUE)
m1 <- permutations(4, 5, v1, repeats.allowed = TRUE)
m2 <- m1[rowSums(m1)==100,]
r1 <- apply(m2, 1, FUN = function(x) split(sample(data), rep(1:5, x)))
数据
v1 <- c(5, 10, 20, 50)
set.seed(43)
data <- runif(100)*100