我有以下
cells = c(3, 5, 8, 6)
names(cells) = c('A', 'B', 'C', 'D')
我想随机选择一半的单元格,然后分配给一个新的向量 m1,另一半单元格将分配给 m2 = cells - m1。我是 R 新手,示例函数只允许我选择一种类型的所有单元格,而不是一次选择单个单元格,所以我不确定从这里去哪里。
我的代码目前看起来像这样
y = ceiling(sum(cells)/2)
for(i in 1:y){
z = sample(cells[cells>0], 1, replacement = FALSE, prob = NULL)
if(z == cells[1]){
cells[1] = cells[1] - 1
m1[1] = m1[1] + 1
}
if(z == cells[2]){
cells[2] = cells[2] - 1
m1[2] = m1[2] + 1
}
if(z == cells[3]){
cells[3] = cells[3] - 1
m1[3] = m1[3] + 1
}
if(z == cells[4]){
cells[4] = cells[4] - 1
m1[4] = m1[4] + 1
}
}
我知道这是错误的,因为它只随机选择单元格类型,而不是随机选择每个单元格。任何帮助,将不胜感激。