对于以下问题,我确实有一个解决方案,但它非常难看,而且很可能以更短的方式完成。能得到你的帮助会很棒。
我的输入如下所示:
C1 C2
A B
B D
D C
A D
我的输出应该是这样的:
A B C D
1 1 0 0
0 1 0 1
0 0 1 1
1 0 0 1
我目前的解决方案是:
index <- unique(unlist(input[,1:2]))
output <- matrix(0,nrows=dim(input),ncols=length(index))
for(i in 1:dim(input)) {
output[i, input[i,]$C1] <- 1
output[i, input[i,]$C2] <- 1
}
当然 4-5 行实际上是好的 - 但即使作为 R 初学者,使用for循环也不合适。除此之外,我的实际数据不止两列,因此最终看起来不太好。我将如何以更聪明的方式做到这一点?
干杯