如何通过R中的变量计算疾病流行率
我完全无法根据一个变量(在我的例子中是邮政编码)来计算我的疾病流行率。我什么都试过了,但似乎都不管用:( 我知道疾病流行率很容易计算(总患病人数除以总人口),但它不允许我将病例和总人口按邮政编码相加,然后再除以它们 我试图计算患病率的列名为“莱姆”,这是一个逻辑变量(0=负,1=正)。然后列“FSA”是我的邮政编码。请帮助 这是我的密码:如何通过R中的变量计算疾病流行率,r,dplyr,R,Dplyr,我完全无法根据一个变量(在我的例子中是邮政编码)来计算我的疾病流行率。我什么都试过了,但似乎都不管用:( 我知道疾病流行率很容易计算(总患病人数除以总人口),但它不允许我将病例和总人口按邮政编码相加,然后再除以它们 我试图计算患病率的列名为“莱姆”,这是一个逻辑变量(0=负,1=正)。然后列“FSA”是我的邮政编码。请帮助 这是我的密码: Data.All.df <- data.frame(Data.All) ## Create Data Frame from Data file Data
Data.All.df <- data.frame(Data.All) ## Create Data Frame from Data file
Data.All.df.2008 <- subset(Data.All.df, Year=="2008") ##only use 2008
library(dplyr)
Data.All.df.2008 <- Data.All.df.2008 %>%
group_by(FSA) %>%
mutate_each(funs(Cases = ((Lyme=="1")/((Lyme=="0")+(Lyme=="1")))))```
X.1 X Source Patient Accession Customer Year Date Country City Province Postal Name Age Gender Species Breed SNAP Apspp Ehrspp HW Lyme Coinfections dupID FSA
1710 4913 4913 Veterinary Clinic Bronson Sprartacus796575981360 7.97e+13 79657 2008 2008-01-08 Canada WINDSOR ON N8N 3T4 Bronson Sprartacus 132 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8N
1711 4915 4915 Veterinary Clinic Scotty9233669481432 9.23e+13 92336 2008 2008-01-08 Canada WINDSOR ON N8R 1A5 Scotty 84 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8R
1712 4916 4916 Veterinary Clinic Hershey9233683161435 9.23e+13 92336 2008 2008-01-08 Canada WINDSOR ON N8R 1A5 Hershey 48 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8R
1713 4918 4918 Veterinary Clinic Brandy7965736441362 7.97e+13 79657 2008 2008-01-09 Canada WINDSOR ON N8N 3T4 Brandy 156 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8N
1714 4919 4919 Veterinary Clinic Trish9233699481443 9.23e+13 92336 2008 2008-01-10 Canada WINDSOR ON N8R 1A5 Trish 132 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8R
1715 4929 4929 Veterinary Clinic Lexie8001685020761364 8.00e+13 80016 2008 2008-01-17 Canada HALIFAX NS B3L 2C2 Lexie 29 Spayed Canine Non-Sporting 4Dx 0 0 0 0 0 TRUE B3L
1716 4937 4937 Veterinary Clinic CUBBIE79700431 7.97e+12 79700 2008 2008-01-21 Canada DARTMOUTH NS B2W 2N3 CUBBIE 118 Spayed Canine Non-Sporting 4Dx 0 0 0 0 0 TRUE B2W
1717 4945 4945 Veterinary Clinic Stevie7965765291433 7.97e+13 79657 2008 2008-01-25 Canada WINDSOR ON N8N 3T4 Stevie 36 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8N
1718 4947 4947 Veterinary Clinic Bailey9233644191501 9.23e+13 92336 2008 2008-01-25 Canada WINDSOR ON N8R 1A5 Bailey 132 Not Specified Canine Not Specified 4Dx 0 0 0 0 0 TRUE N8R
1719 4948 4948 Veterinary Clinic ZAK925369448482 9.25e+12 92536 2008 2008-01-25 Canada HUNTSVILLE ON P1H 1B5 ZAK 96 Neutered Canine Hound 4Dx 0 0 0 0 0 TRUE P1H
17
Data.All.df使用以下最小示例数据:
#生成数据。
种子集(0934)
Data.All.df.2008%
组别(FSA)%>%
总结(患病率=总和(莱姆)/n()
##tibble:4 x 2
#FSA患病率
#
#1 B3L 0.778
#2 N8N 0.571
#3 N8R 0.583
#4 P1H 0.467
您需要从data.All.df.2008
以纯文本格式提供示例数据以获得任何帮助。可能,data.All.df%>%filter(Year==2008)%%>%groupby(FSA)%%>%summary(prev=mean(lym))
…@neilfws我想我添加的数据是正确的。这就是你的意思吗?现在读取数据很困难,你能将数据限制在关键列吗?谢谢。Holly我们有一个易于导入的样本数据集很重要。通常你可以通过采集数据样本并使用dput
,但在你的情况下,这是非常重要的创建一些玩具数据可能更有意义,因为Lyme==1
似乎并不经常出现。请参阅下面我的答案,了解如何创建玩具数据的示例。它成功了!我在cloud 9上!非常感谢!@gershtGreat听到它@HollyArcher!既然我的答案解决了您的问题,您介意投票并接受a吗通过点击左边的复选标记来回答问题?这样,其他有问题的人也会知道什么对你有效。我点击了复选标记,但当我尝试向上投票时,它说了这句话:“感谢反馈!记录了声誉低于15的人所投的票,但不会更改公开显示的帖子分数”.我会努力提高我的声誉,然后再做一次!:)@gersht