是否有一个R函数可以在不指定单个元素的情况下将列表元素作为参数传递
是否有一个R函数可以将列表中的所有元素作为函数的参数传递是否有一个R函数可以在不指定单个元素的情况下将列表元素作为参数传递,r,list,R,List,是否有一个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]]) 您可以使用do.call执行函数调用和要传递给它的参数列表 对于不需要重复列名的交叉: library(tidyr) 姓名(d)谢谢你的回答,我尝试了交叉,但它击中了一个错误“col_姓名不得重复”。我已经
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]])
您可以使用
do.call
执行函数调用和要传递给它的参数列表
对于不需要重复列名的交叉
:
library(tidyr)
姓名(d)谢谢你的回答,我尝试了交叉,但它击中了一个错误“col_姓名不得重复”。我已经用预期结果更新了我的问题。交叉不需要重复列名-我添加了一个示例。太棒了。我认为R足够聪明,可以将列名分配给TIBLE。打电话的时候。非常感谢。
> 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
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