在数据集中,“零不良心理健康日”的值是88。我想把这个数字改为0,这样我就可以得到宾夕法尼亚州心理健康不良的平均天数。
avgMHNotGoodPenn <- brfss2 %>%
select(menthlth, state)%>%
filter(state == '42') %>%
mutate(replace(value=88, 0),
avgMHNotGood= mean(menthlth))%>%
select(menthlth, avgMHNotGood)%>%
head(1)
这段代码平均返回62.4,但没有用0替换88s。
发布于 2022-06-29 14:26:47
可以使用ifelse
为数据帧brffs
分配新值。
brfss2 <- data.frame(menthlth = c(0, 1, 40, 88))
brfss2
#> menthlth
#> 1 0
#> 2 1
#> 3 40
#> 4 88
brfss2$menthlth <- ifelse(brfss2$menthlth == 88, 0, brfss2$menthlth)
brfss2
#> menthlth
#> 1 0
#> 2 1
#> 3 40
#> 4 0
如果不想更改原始值,也可以在dplyr链中这样做:
library(dplyr)
brfss2 <- data.frame(menthlth = c(0, 1, 40, 88))
brfss2 %>%
mutate(menthlth = ifelse(menthlth == 88, 0, menthlth))
#> menthlth
#> 1 0
#> 2 1
#> 3 40
#> 4 0
https://stackoverflow.com/questions/72802990
复制相似问题