gpt4 book ai didi

r - 是否有一个 R 函数可以在不指定单个元素的情况下将列表元素作为参数传递

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

是否有一个 R 函数可以将列表的所有元素作为函数的参数传递?

library(tidyr)
a <- c(1,2,3)
b <- c(4,5,6)
c <- c(7,8,9)
d <- list(a,b,c)
crossing(d[[1]],d[[2]],d[[3]])

我不想指定 d[[1]],d[[2]],d[[3]],而是只包含 d

预期结果:

> crossing(d[[1]],d[[2]],d[[3]])
# A tibble: 27 x 3
`d[[1]]` `d[[2]]` `d[[3]]`
<dbl> <dbl> <dbl>
1 1 4 7
2 1 4 8
3 1 4 9
4 1 5 7
5 1 5 8
6 1 5 9
7 1 6 7
8 1 6 8
9 1 6 9
10 2 4 7
# ... with 17 more rows

最佳答案

您可以使用 do.call执行函数调用和要传递给它的参数列表

c(d[[1]],d[[2]],d[[3]])
#[1] 1 2 3 4 5 6 7 8 9

do.call("c", d)
#[1] 1 2 3 4 5 6 7 8 9

对于交叉不需要重复的列名:

library(tidyr)
names(d) <- seq_along(d)
do.call(crossing, d)
## A tibble: 27 x 3
# `1` `2` `3`
# <dbl> <dbl> <dbl>
# 1 1 4 7
# 2 1 4 8
# 3 1 4 9
# 4 1 5 7
# 5 1 5 8
# 6 1 5 9
# 7 1 6 7
# 8 1 6 8
# 9 1 6 9
#10 2 4 7
## … with 17 more rows

关于r - 是否有一个 R 函数可以在不指定单个元素的情况下将列表元素作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60638297/

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