【发布时间】:2018-05-25 22:46:52
【问题描述】:
我有一个我精心构建的数据表(下面提供了玩具示例):
library(data.table)
Vmat1 = data.table(expand.grid(c(list(d = 1:2, w = 1:(3)))))
> Vmat1
d w
1: 1 1
2: 2 1
3: 1 2
4: 2 2
5: 1 3
6: 2 3
我想从以下意义上获得权力。对于 Vmat 的每一列,我想创建一个新的同名列,后缀为“prime”。然后我想枚举幂集,使得对于原始数据中的每个原始行,都有一个包含所有可能性的新行(与问题无关,但您可能能够正确想象我正在尝试处理状态转换在马尔可夫链中)
这将给出以下输出:
d w dprime wprime
1: 1 1 1 1
2: 2 1 1 1
3: 1 2 1 1
4: 2 2 1 1
5: 1 3 1 1
6: 2 3 1 1
7: 1 1 2 1
8: 2 1 2 1
9: 1 2 2 1
10: 2 2 2 1
11: 1 3 2 1
12: 2 3 2 1
13: 1 1 1 2
14: 2 1 1 2
15: 1 2 1 2
16: 2 2 1 2
17: 1 3 1 2
18: 2 3 1 2
19: 1 1 2 2
20: 2 1 2 2
21: 1 2 2 2
22: 2 2 2 2
23: 1 3 2 2
24: 2 3 2 2
25: 1 1 1 3
26: 2 1 1 3
27: 1 2 1 3
28: 2 2 1 3
29: 1 3 1 3
30: 2 3 1 3
31: 1 1 2 3
32: 2 1 2 3
33: 1 2 2 3
34: 2 2 2 3
35: 1 3 2 3
36: 2 3 2 3
请注意,在没有 Vmat 的情况下直接构造素数矩阵的解决方法在我的上下文中没有用。操作必须直接在 Vmat 上完成。它被修剪并且直接在实际数据上执行完整的功率集将导致内存错误并且由于存在大量列而也很笨重。
【问题讨论】:
标签: r matrix dplyr data.table tidyverse