行列は(r1、... rm)の行を持ち、(c1、c2、... cn)すべての要素が0と1であるとします。異なる列の組み合わせに対して0と1の数を計算する
私は、異なる組み合わせのために、0と1の合計数をカウントしたいと思います!例えば、C1 & C2は、C1 & C3、C1、C2 & & C3、C1 & C3 & C4 & C3、C1。
これを有効にカウントする方法はありますか?
私はそれがデータの行列であるこのようにあまりよくありません。
is.one <- function(data,zero.one)
{
#zero.one is logical , T, counting 1, otherwise 0s.
if (zero.one)
return (data==1)
else
return (data==0)
}
sum.one <- function(data, comb, zero.one)
{
#comb is one of the combinations as a vector
index<- rep(T,nrow(data))
for (i in 1: length(comb))
{
# assuming i-th column is the i-th element of combination
index <- is.one(data[,i], zero.one[i])
data <- data[index,]
}
return(sum(index))
}
例:メートル(nrow(データ))が大きいときに私は、彼らが表示され、すべての組み合わせについて、C1、またはC2を計算し、インデックスを維持するというではないと思います
sum.one (data, c("c1","c2"), c(1,1))
sum.one (data, c("c1","c2","c3"), c(1,1,1))
sum.one (data, c("c1","c2","c3"), c(1,1,0))
メモリの問題かもしれません。
アドバイスをいただければ幸いです。
'reshape2'をインポートするための任意の理由は? – Bernhard
それは機能しますが、私の機能はうまくいくと思いますが、メモリは効率的ではないと思います。私がc1&!c4&c5を知りたければ、最初からそれを計算する必要がありますが、上のc1と!c4の行がわかります。 –
申し訳ありませんが、reshape2 - インポートは必要ありませんでした。私はそれを指摘してくれてありがとう、それを削除しました。 – brettljausn