gpt4 book ai didi

r - pmap 在不同长度的列表上

转载 作者:行者123 更新时间:2023-12-02 17:03:42 24 4
gpt4 key购买 nike

我正在尝试确定如何使用应用于不同长度列表的 dplyr pmap 函数。

下面是我想做的一个非常简单的例子

list_1 <- list(1, 2, 3)

list_2 <- list(1, 2)

list_3 <- list(1, 2, 3, 4, 5)


pmap(list(list_1, list_2, list_3), ~ ..1 + ..2 + ..3)

上面的结果将是一个长度为 length(list_1) * length(list_2) * length(list_3) 的列表,其中包含 3 个列表的所有组合的总和

我的实际应用程序有点复杂,因为我试图适应 glm 模型,其中 list_1 是响应 list_2list_3 是其他 glm 函数输入。

最佳答案

pmap 不会生成所有组合,它只是将一个函数应用于每个列表元素的第一个元素,然后是第二个元素,依此类推。您需要 expand.grid(或类似的)

l.combs <- expand.grid(list_1, list_2, list_3)
l.combs[] <- lapply(l.combs, unlist)
rowSums(l.combs)

或者用pmap

library(tidyverse)
l.combs <- expand.grid(list_1, list_2, list_3)
pmap(l.combs, ~ ..1 + ..2 + ..3)

编辑:这是一个使用 glm 的例子,它“有效”但在统计上显然是无稽之谈

list_1 <- replicate(3, runif(10), simplify = F)

list_2 <- replicate(2, runif(10), simplify = F)

list_3 <- replicate(5, runif(10), simplify = F)

l.combs <- expand.grid(list_1, list_2, list_3)
pmap(l.combs, ~ glm(..1 ~ ..2 + ..3))

关于r - pmap 在不同长度的列表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52795438/

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