在for循环中使用条件的最快方法
因此,对于数据集birthwt,我想要的是吸烟母亲所生的低体重婴儿的百分比,并且在分娩时年龄在20岁以下。换句话说,我想知道有多少个不需要循环:在for循环中使用条件的最快方法,r,loops,for-loop,R,Loops,For Loop,因此,对于数据集birthwt,我想要的是吸烟母亲所生的低体重婴儿的百分比,并且在分娩时年龄在20岁以下。换句话说,我想知道有多少个不需要循环: library(dplyr) birthwt %>% summarise(perc = mean(age < 20 & smoke == 1 & bwt < 2600)) 库(dplyr) 出生体重%>% 总结(perc=平均值(年龄% 突变(pct=100*n/和(n)) #一个tible:4 x 4 `
library(dplyr)
birthwt %>%
summarise(perc = mean(age < 20 & smoke == 1 & bwt < 2600))
库(dplyr)
出生体重%>%
总结(perc=平均值(年龄<20岁,吸烟=1岁,体重<2600))
一个for循环就足够了
#df contains the birthwt data
lwt_tot <- 0
lwt_2600 <- 0
for(i in 1:nrow(df)){
lwt_tot <- lwt_tot + 1
if(df$age[i] < 20 & df$smoke[i] == 1 & df$bwt[i] < 2600){
lwt_2600 <- lwt_2600 + 1
}
}
print((lwt_2600/lwt_tot)*100)
#[1] 3.703704
#df包含birthwt数据
lwt_tot
我想知道母亲所生的低体重婴儿的百分比
那是烟,生孩子的时候还不到20岁
这表明以下代码:
birthwt %>%
filter(bwt<2600) %>%
group_by(`young(<20)`=age<20, smoke) %>%
summarise(n = n()) %>%
ungroup() %>%
mutate(pct=100*n/sum(n))
birthwt%>%
过滤器(bwt%
分组依据(`young(%)
解组()%>%
突变(pct=100*n/和(n))
#一个tible:4 x 4
`年轻人(在基数R中,我们可以计算年龄<20
吸烟=1
和体重<2600
的人数,并将其除以体重体重<2600
的总人数
with(birthwt, sum(age < 20 & smoke == 1 & bwt < 2600)/sum(bwt < 2600)) * 100
#[1] 11.11
带(出生体重,总和(年龄<20岁,吸烟==1岁,体重<2600)/总和(体重<2600))*100
#[1] 11.11
这有什么烦人的地方?它需要是一个循环?你在这里的分母是什么百分比:所有婴儿还是只有那些低出生体重的婴儿(它不需要以实际的方式是一个循环,但它是为了锻炼的目的。分母是出生婴儿的总数。谢谢你的回答!
# A tibble: 4 x 4
`young(<20)` smoke n pct
<lgl> <int> <int> <dbl>
1 FALSE 0 22 34.9
2 FALSE 1 25 39.7
3 TRUE 0 9 14.3
4 TRUE 1 7 11.1
with(birthwt, sum(age < 20 & smoke == 1 & bwt < 2600)/sum(bwt < 2600)) * 100
#[1] 11.11