【发布时间】:2021-04-13 22:17:44
【问题描述】:
我有许多连续变量列,我需要计算其中有多少列在 x 范围内。我尝试了一种类似于此的相当冗长的方法:
library(tidyverse)
mtcars %>%
mutate("1" = if_else(mpg >= 0 & mpg <= 1, 1, 0),
"5" = if_else(mpg >= 0 & mpg <= 5, 1, 0),
"10" = if_else(mpg >= 0 & mpg <= 10, 1, 0),
"20" = if_else(mpg >= 0 & mpg <= 20, 1, 0),
"50" = if_else(mpg >= 0 & mpg <= 50, 1, 0),
"100" = if_else(mpg >= 0 & mpg <= 100, 1, 0),
"400" = if_else(mpg >= 0 & mpg <= 400, 1, 0),
distance = round(mpg , 2)) %>%
select("1", "5", "10", "20", "50", "100", "400") %>%
map_df(mean)
有没有一种优雅的方式来迭代这个过程而无需复制和粘贴变量?
【问题讨论】:
-
试试
imap_dbl(lst(1, 5, 10, 20, 50, 100, 400), ~ with(mtcars, mean(between(mpg, 0, .x)))) %>% as_tibble_row