r - 组合 R 中的列表元素

标签 r list combinations

我有一个表单列表 list(c(x1,x2),y,c(z1,z2)) .
我想组合列表中每个元素的子元素来产生
矩阵形式:

[1] x1 y z1

[2] x1 y z2

[3] x2 y z1

[4] x2 y z2

举一个具体的例子,给出:
A = list(c(1,4),2,3,c(1,4))

我想要一个函数,它接受 A 并产生一个与此命令产生的输出看起来相同的输出:
t(matrix(c(c(1,2,3,1),1:4,c(4,2,3,1),c(4,2,3,4)),ncol=4))

最佳答案

使用 expand.grid :

expand.grid(A)
#   Var1 Var2 Var3 Var4
# 1    1    2    3    1
# 2    4    2    3    1
# 3    1    2    3    4
# 4    4    2    3    4

如果订单真的很重要,您可以执行以下操作:
rev(expand.grid(rev(A)))
#   Var4 Var3 Var2 Var1
# 1    1    2    3    1
# 2    1    2    3    4
# 3    4    2    3    1
# 4    4    2    3    4

并可能重命名列。

关于r - 组合 R 中的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14430671/

相关文章:

javascript - 字符串双循环的组合 (JavaScript)

javascript - 我应该如何用 Javascript 解决这个组合场景?

r - 将文本框添加到 ggplot2 中的分面包装布局

python - 如何在列表中保持项目 "types"的严格交替模式?

Python list.index() 与字典

Python 不使用 for 循环查询列表

python - 来自 Pandas Dataframe 的 Fishers 精确测试

r - R 中的 "bad restore file magic number"错误

r - 将 .pdf 转换为 .txt

r - 如何在 R 中使用正则表达式转义或清理斜线?