英文:
Plot only 1s of a binomial matrix
问题
我想要绘制二项矩阵中所有1的情况(下面给出了代码)。我需要将y轴设置为频率,x轴设置为矩阵的所有列。
# 矩阵的代码
prevalence <- 0.01
Infected <- sapply(1:10, function(p) rbinom(500, 1, prevalence))
我尝试使用 hist(Infected)
,但这只给了我0和1的频率,没有列的详细信息。
谢谢你的帮助。
英文:
I would like to plot all the 1s of a binomial matrix (code given below). I need to histogram y-axis to be the frequency and the x-axis to be all the matrix columns.
#code for matrix
prevalence <- 0.01
Infected <- sapply(1:10, function(p) rbinom(500, 1, prevalence))
I tried using hist(Infected)
but this just gave me the frequency of 0 and 1, with no column details.
Thank you for your help.
答案1
得分: 3
使用 colSums
函数来获取每列中 1
的数量,然后使用 barplot
函数来生成每列的条形图。
set.seed(42)
prevalence <- 0.01
Infected <- sapply(1:10, function(p) rbinom(500, 1, prevalence))
barplot(colSums(Infected), names.arg = 1:10)
[![在此输入图像描述][1]][1]
<details>
<summary>英文:</summary>
Use `colSums` to get the number of `1` and then `barplot` to get a bar per column.
set.seed(42)
prevalence <- 0.01
Infected <- sapply(1:10, function(p) rbinom(500, 1, prevalence))
barplot(colSums(Infected), names.arg = 1:10)
[![enter image description here][1]][1]
[1]: https://i.stack.imgur.com/vyxCQ.png
</details>
# 答案2
**得分**: 2
你可以尝试 `replicate` 和 `sum(rbinom(...))`, 例如,
hist(replicate(10, sum(rbinom(500, 1, 患病率))))
或者 `colSums`
hist(colSums(matrix(rbinom(500 * 10, 1, 患病率), 10)))
你将获得类似下图的图表
[![图表描述][1]][1]
<details>
<summary>英文:</summary>
You can try `replicate` and `sum(rbinom(...))`, e.g.,
hist(replicate(10, sum(rbinom(500, 1, prevalence))))
or `colSums`
hist(colSums(matrix(rbinom(500 * 10, 1, prevalence), 10)))
and you will obtain the plot like below
[![enter image description here][1]][1]
[1]: https://i.stack.imgur.com/20WK9.png
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论