如何在 data.table 行上应用组合函数来提取和记录另一个 data.table 中的不同可能性?
How to apply a combination function on data.table rows to extract and record the different possibilities in another data.table?
我遇到了一个问题,在以前的帖子中找不到合适的方法来解决它。
我的数据 table 下面有 one 列:
listOfRules
1: a, fire, addAfter, b
2: b, storm, addAfter, c
3: c, storm, remove
我想找到一种方法来获取另一数据 table 中每行元素的组合,如下所示。
基本上,我想先获取每一行,然后两行两行,继续这样,直到最后我得到所有选项。
x1 x2 x3
1. a, fire, addAfter, b NA NA
2. b, storm, addAfter, c NA NA
3. c, storm, remove NA NA
4. a, fire, addAfter, b b, storm, addAfter, c NA
5. a, fire, addAfter, b c, storm, remove NA
6. b, storm, addAfter, c c, storm, remove NA
7. a, fire, addAfter, b b, storm, addAfter, c c, storm, remove
非常感谢你在这方面的帮助。
这是一个简单的 R 基础方法
v <- letters[1:3]
lenV <- length(v)
do.call(rbind, lapply(1:lenV, function(x) {
mat <- t(combn(v, x))
if (ncol(mat) < lenV)
cbind(mat, replicate(lenV - ncol(mat), rep(NA, nrow(mat))))
else
mat
}))
我遇到了一个问题,在以前的帖子中找不到合适的方法来解决它。 我的数据 table 下面有 one 列:
listOfRules
1: a, fire, addAfter, b
2: b, storm, addAfter, c
3: c, storm, remove
我想找到一种方法来获取另一数据 table 中每行元素的组合,如下所示。 基本上,我想先获取每一行,然后两行两行,继续这样,直到最后我得到所有选项。
x1 x2 x3
1. a, fire, addAfter, b NA NA
2. b, storm, addAfter, c NA NA
3. c, storm, remove NA NA
4. a, fire, addAfter, b b, storm, addAfter, c NA
5. a, fire, addAfter, b c, storm, remove NA
6. b, storm, addAfter, c c, storm, remove NA
7. a, fire, addAfter, b b, storm, addAfter, c c, storm, remove
非常感谢你在这方面的帮助。
这是一个简单的 R 基础方法
v <- letters[1:3]
lenV <- length(v)
do.call(rbind, lapply(1:lenV, function(x) {
mat <- t(combn(v, x))
if (ncol(mat) < lenV)
cbind(mat, replicate(lenV - ncol(mat), rep(NA, nrow(mat))))
else
mat
}))