【发布时间】:2019-09-20 16:09:35
【问题描述】:
这个问题有很多应用。我想识别和计算许多变量中的唯一二进制模式。我找到了与我正在寻找的内容相近的东西,但我无法完成代码。
与链接中的数据相同:
library(data.table)
xx <- rbind(c(1,0,0),c(1,0,0),c(1,0,1),c(0,1,1),c(0,1,1))
xx <- as.data.table(xx)
library(e1071)
countpattern(xx[,1:3])
000 001 010 011 100 101 110 111
0 0 0 2 2 1 0 0
(cols <- names(which(countpattern(xx[,1:3])>0)))
for(i in cols) { xx[,i] <- as.character("") } # ... and that's it :(
xx
V1 V2 V3 011 100 101
1: 1 0 0
2: 1 0 0
3: 1 0 1
4: 0 1 1
5: 0 1 1
我有 data.table 和列,当每行中的模式与可用列名匹配时,我想用 TRUE/FALSE 或 1/0 填充它们。最终结果应如下所示:
xx
V1 V2 V3 011 100 101
1: 1 0 0 0 1 0
2: 1 0 0 0 1 0
3: 1 0 1 0 0 1
4: 0 1 1 1 0 0
5: 0 1 1 1 0 0
我已经尝试了多个版本的快速for (i in seq_along) {set(DT, i, 1L, i)},但我的目标远大于我的技能。
谢谢, 阿尔多
【问题讨论】:
标签: r data.table