R 两个循环并以简单的分发格式呈现答案
有10个家庭。当他们生下一个男孩时,他们就停止了。当他们有了一个女孩,他们将继续生产。男孩和女孩的比例是多少?我能做这部分。代码如下所示R 两个循环并以简单的分发格式呈现答案,r,R,有10个家庭。当他们生下一个男孩时,他们就停止了。当他们有了一个女孩,他们将继续生产。男孩和女孩的比例是多少?我能做这部分。代码如下所示 N <- 10 boys <- 0 girls <- 0 while (N>=1) { boyorgirl <- sample (c("boy", "girl"), N, replace = TRUE) boys <- boys + length(which(boyorgirl=="boy")) girls
N <- 10
boys <- 0
girls <- 0
while (N>=1) {
boyorgirl <- sample (c("boy", "girl"), N, replace = TRUE)
boys <- boys + length(which(boyorgirl=="boy"))
girls <- girls + length(which(boyorgirl=="girl"))
N <- length(which(boyorgirl=="girl"))
}
ratioboygirl <- boys / girls
N由于您将男孩
、女孩
和ratioboygirl
初始化为列表
,因此您需要使用双括号[[[]]
传递单个数字,而不是使用单括号[]
传递列表。您可以使用一个简单的示例来验证这一点
a由于您将男孩
、女孩
和ratioboygirl
初始化为列表
,因此您需要使用双括号[[]]
传递单个数字,而不是使用单括号[]
传递列表。您可以使用一个简单的示例来验证这一点
a我将使用直方图函数根据我自己的问题完成输出。谢谢deepseefan的建议。我将使用直方图函数根据我自己的问题最终确定输出。谢谢你的建议。
boys <- list()
girls <- list()
ratioboygirl <- list()
for (ii in 1:1000) {
boys[ii] <- 0
girls[ii] <- 0
N <- 10
while (N>=1) {
boyorgirl <- sample (c("boy", "girl"), N, replace = TRUE)
boys[ii] <- boys[ii] + length(which(boyorgirl=="boy"))
girls[ii] <- girls[ii] + length(which(boyorgirl=="girl"))
N <- length(which(boyorgirl=="girl"))
}
ratioboygirl[ii] <- boys [ii] / girls [ii]
}