gpt4 book ai didi

R dplyr : Write list output to dataframe

转载 作者:行者123 更新时间:2023-12-04 09:43:45 24 4
gpt4 key购买 nike

假设我有以下功能

SlowFunction = function(vector){
return(list(
mean =mean(vector),
sd = sd(vector)
))
}

我想使用 dplyr:summarise 将结果写入数据帧:
iris %>% 
dplyr::group_by(Species) %>%
dplyr::summarise(
mean = SlowFunction(Sepal.Length)$mean,
sd = SlowFunction(Sepal.Length)$sd
)

有没有人建议我如何通过调用“SlowFunction”一次而不是两次来做到这一点? (在我的代码中,“SlowFunction”是一个我必须多次调用的慢函数。)当然没有将“SlowFunction”分成两部分。所以实际上我想以某种方式在一个语句中填充数据框的多列。

最佳答案

一个选项是用于将 SlowFunction 的输出存储在 listdata.frame 列中,然后使用 unnest

iris %>%
group_by(Species) %>%
summarise(res = list(as.data.frame(SlowFunction(Sepal.Length)))) %>%
unnest()
## A tibble: 3 x 3
# Species mean sd
# <fct> <dbl> <dbl>
#1 setosa 5.01 0.352
#2 versicolor 5.94 0.516
#3 virginica 6.59 0.636

关于R dplyr : Write list output to dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55623488/

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