r-tidyverse:发现大于多个值的观测次数



我想计算大于57的观测次数。这可以通过使用dplyr中的case_when函数制作伪变量来实现。想知道在不创建伪变量的情况下更有效的方法。

library(tidyverse)
dt1 <-  tibble(X = 1:10)
dt1 %>% 
mutate(
X1 = case_when(X >= 5 ~ 1, X < 5 ~ 0)
, X2 = case_when(X >= 7 ~ 1, X < 7 ~ 0)
) %>% 
summarise(across(.cols = c(X1, X2), .fns = sum))
#> # A tibble: 1 x 2
#>      X1    X2
#>   <dbl> <dbl>
#> 1     6     4

您可以直接使用summarize

dt1 %>% 
summarise(X1 = sum(X >= 5),
X2 = sum(X >= 7))
# A tibble: 1 x 2
X1    X2
<int> <int>
1     6     4

如果有多个元素,也可以选择使用map循环

library(purrr)
library(dplyr)
library(stringr)
imap_dfc(setNames(c(5, 7), str_c("X", 1:2)), ~ dt1 %>%
summarise(!! .y := sum(X >= .x)))
# A tibble: 1 × 2
X1    X2
<int> <int>
1     6     4

相关内容

  • 没有找到相关文章

最新更新