假设我有一个列表(在我的情况下,列表中的元素数量是可变的),
tmp=c('X1','X2','X3','X4')
我想将每个元素传递给扩展网格函数,如下所示:
tmp1=expand.grid(X1=c(0,1),X2=c(0,1),X3=c(0,1),X4=c(0,1))
其中每个元素只能取值0和1.我怎么能实现这个目的?
感谢。
答案 0 :(得分:1)
我们可以使用mget
来获取' tmp'中元素的值。 vector
为list
,然后用expand.grid
包装。
expand.grid(mget(tmp))
或者,如果这些不是对象,而是我们需要使用expand.grid
创建的列名,则将向量c(0,1)
放在list
中,然后通过{{1}复制它' tmp',执行length
并将列名设置为' tmp' (使用expand.grid
)
setNames