gpt4 book ai didi

r - 有没有一种方法可以创建一个在 %>% 内的 mutate 中使用的函数

转载 作者:行者123 更新时间:2023-12-01 22:50:14 25 4
gpt4 key购买 nike

这就是我想要实现的。创建一个我可以重复使用许多变量的函数。

library(dplyr)

set.seed(2022)
mydata <- tibble::tibble(
"id" = 1:100,
"a1" = sample(c(rep("Yes", 40), rep_len(NA, 100)), 100),
"a2" = sample(c(rep("Yes", 50), rep_len(NA, 100)), 100),
"a3" = sample(c(rep("Yes", 40), rep_len(NA, 100)), 100),
"a4" = sample(c(rep("Yes", 50), rep_len(NA, 100)), 100),
"b2" = rnorm(100, 50, 10)
)

# Goal is to capture any occurrence of non missing for (a* variables)


avars <- paste0("a", 1:4)

mydata %>%
mutate(afin = ifelse(rowSums(!is.na(select(., all_of(avars))))>1, "Yes", "No")) %>%
count(afin)

# Function (Does not work)

anymatch <- function(vars){
ifelse(rowSums(!is.na(select(., all_of(vars))))>=1, "Yes", "No")
}


mydata %>%
mutate(afin = anymatch(avars))

最佳答案

如果您总是要在 dplyr 更改中的 mutate 中使用此函数,那么您可以使用 cur_data()获取当前 data.frame 而不是 .。实际上,始终使用 cur_data() 而不是 . 可能更安全,即使不使用函数也是如此

anymatch <- function(vars){
ifelse(rowSums(!is.na(select(cur_data(), all_of(vars))))>=1, "Yes", "No")
}

关于r - 有没有一种方法可以创建一个在 %>% 内的 mutate 中使用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74534194/

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