【发布时间】:2021-04-12 18:17:33
【问题描述】:
所以我有这张关于病毒及其感染/死亡/等的表格。这是我的代码和原始表格:
data <- clean_names(read.csv("Book1.csv"))
TableN <- data %>% mutate(PeopleInfected = Suseptible* 1/8) %>% mutate(PeopleDeadFromInfection = PeopleInfected * 1/8) %>%
mutate(ImmuneFromSmallpox = PeopleInfected - PeopleDeadFromInfection)
> head(TableN)
age Susceptible PeopleInfected PeopleDeadFromInfection ImmuneFromSmallpox
1 0 1300 162.500 20.31250 142.18750
2 1 1000 125.000 15.62500 109.37500
3 2 855 106.875 13.35938 93.51562
4 3 798 99.750 12.46875 87.28125
5 4 760 95.000 11.87500 83.12500
6 5 732 91.500 11.43750 80.06250
有 1/8 的机会感染病毒,另外还有 1/8 的机会死于该病毒。活下来的人永远对病毒免疫。因此,我必须从“可疑”中减去“ImmuneFromSmallpox”列,以说明那些幸存下来并永远对病毒免疫的人。
表格应该是这样的:
> head(TableN)
age Susceptible PeopleInfected PeopleDeadFromInfection ImmuneFromSmallpox
1 0 1300 162.500 20.31250 142.18750
2 1 858.8125 107.226 13.40335 93.82265
3 2 761.17735 95.1471 11.89339 83.25371
更清楚地说,我希望第一行保持不变,但我希望其他行发生变化。你推荐我使用什么功能?
【问题讨论】:
-
为什么
PeopleInfected、PeopleDeadFromInfection和ImmuneFromSmallpox中的值会改变您想要的输出? -
我正在考虑那些已经感染病毒的人。他们现在永远免疫它。以下是计算方法。记住,它的感染率是1/8,死亡率是1/8。对于 0 岁(新生儿)的人,1300 * 1/8 = 162.5 人被感染,20.3 人死亡。存活的 142.2 新生儿不再感染病毒,因此,我们从易感列中减去 142.2 人。请记住,对于 1 岁,它最初是 1000,所以我们得到 858.8125。对于 1 岁的儿童,1/8 被感染,1/8 死亡。对每个年龄重复计算。希望解释清楚!
-
@codermcgee 现在有很多答案向您展示了实现结果的许多不同方法。请点击每个答案开头旁边的 v 符号,接受您认为最有帮助的答案。谢谢!
标签: r