gpt4 book ai didi

r - 有没有办法在一组预定义变量上运行 dplyr 函数?

转载 作者:行者123 更新时间:2023-12-05 05:38:19 25 4
gpt4 key购买 nike

df <- mtcars

prop <- df %>%
group_by(cyl, .drop = FALSE) %>%
filter(rowMeans(is.na(across(c(disp, drat, wt)))) <= 0.5) %>%
summarise(N = n(), across(c(disp, drat, wt, qsec, vs), ~mean(. == 1, na.rm=TRUE))) %>%
select(disp, drat, wt, qsec, vs)

有没有办法在外部向量上运行 filter()summarise()select(),例如:

select1 <- df %>% select(disp,  drat, wt)
select2 <- df %>% select(disp, drat, wt, qsec, vs)

而不是每次都定义各自的变量来减少对错误的敏感性?

例如 summarise(N = n(), across(all_of(select2)), ~mean(. == 1, na.rm=TRUE)) %>% 给我一个错误.

谢谢!

最佳答案

使用 !! 来自 {rlang}

library(rlang)
library(dplyr)

df <- mtcars

select1 <- df %>% select(disp, drat, wt) %>% names()
select2 <- df %>% select(disp, drat, wt, qsec, vs) %>% names()

df %>%
group_by(cyl, .drop = FALSE) %>%
filter(rowMeans(is.na(across(!!select1))) <= 0.5) %>%
summarise(N = n(), across(!!select2, ~ mean(. == 1, na.rm = TRUE))) %>%
select(!!select2)

#> # A tibble: 3 × 5
#> disp drat wt qsec vs
#> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 0 0 0 0 0.909
#> 2 0 0 0 0 0.571
#> 3 0 0 0 0 0

reprex package 创建于 2022-07-12 (v2.0.1)

关于r - 有没有办法在一组预定义变量上运行 dplyr 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72951808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com