gpt4 book ai didi

r - 相当于 purrr::map_df 中的 next

转载 作者:行者123 更新时间:2023-12-04 00:27:01 25 4
gpt4 key购买 nike

我正在寻找相当于 next 在循环中的 purrr::map_df 调用。

map_df 可以很好地处理 NULL 的数据帧(如下例所示),所以当我设置 Result <- NULL 时它可以工作在我下面的例子中。

谁能为我下面的插图提出一个不需要我设置 Result <- NULL 的通用解决方案,而是立即转到“下一步”。

library(tidyverse)
set.seed(1000)

df <- data.frame(x = rnorm(100), y = rnorm(100), z = rep(LETTERS, 100))

Map_Func <- function(df) {

Sum_Num <- suppressWarnings(sqrt(sum(df$y)))

if( Sum_Num == "NaN" ) {

Result <- NULL
# I would like to have an equivalent to "next" here...

} else {

Result <- df %>% filter(y == max(y)) %>% mutate(Result = x*y)

}

Result

}

Test <- split(df, df$z) %>% map_df(~Map_Func(.))

在上面的代码中,我可以用什么来代替 Result <- NULL在丑陋的 if 语句中(即我想简单地检查一个条件并有效地执行“下一步”)。

最佳答案

要退出函数,您可以使用 return(<output>)命令。这会立即以您定义的输出退出函数。下面给出了与示例代码相同的输出。

library(tidyverse)
set.seed(1000)

df <- data.frame(x = rnorm(100), y = rnorm(100), z = rep(LETTERS, 100))

Map_Func <- function(df) {

Sum_Num <- suppressWarnings(sqrt(sum(df$y)))

if( Sum_Num == "NaN" ) {

return(NULL)

}

Result <- df %>% filter(y == max(y)) %>% mutate(Result = x*y)
}

Test <- split(df, df$z) %>% map_df(~Map_Func(.))

关于r - 相当于 purrr::map_df 中的 next,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55708953/

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