クラスをどのように扱うべきtable
ですか?結果を使っていくつかの計算を行う必要がありますtable()
。今のところ、テーブルのクラスを解除してデータフレームに強制します。それは良い習慣であるか、より良い(より速い)アプローチがあります。次の例があります。
x <- data.frame(a=c(1,1,1,1,1,1,0,0,0,0,0,0,0),
b=c('a','a','b','b','a','a','b','b','a','a','b','b','a'))
t <- table(x$b,x$a)
t <- data.frame(unclass(t))
sum(log((t$X0/sum(t$X0)) / (t$X1/sum(t$X1))) * ((t$X0/sum(t$X0)) - (t$X1/sum(t$X1))))
編集: を使用できることがわかりましprop.table
たが、質問は同じです:
t <- data.frame(unclass(prop.table(table(x$b,x$a),margin=2)))
sum(log(t$X0/t$X1) * (t$X0 - t$X1))