2016-04-25 19 views
0

私は、データセット内の複数の変数のペアのための絶対周波数を取得するために必要なので、私は「ループ」にxtabsコマンドをこのコードを使用:絶対周波数(xtabs)から相対周波数への適用は適用されますか?

apply(table[,2:17], 2, function(x) xtabs(~tablel$variable+x)) 

それがうまく働いたと変数によって私に絶対的な周波数を与えました。しかし、今私は行からこれらの相対的な頻度を取得する必要があり、私はどのように把握することはできません。

何らかの形でループ内に相対頻度計算を含めることはできますか?または、そのために新しいデータセットを作成する必要がありますか(どのようにしてRの絶対周波数を得ることができないのでしょうか)。

ここでは、コードで得られた変数の周波数の例を示します。

$SEM 
      x 
     MN   sem1  sem2  sem3 
     N1   227  130   18 
     N10   0   2   7 
     N11   9   7   5 
     N12   29   21   1 
     N2   23   14   2 
     N3   19   7   4 
     N4   12   17   0 
     N5   18   36   3 
     N6   22   13   7 
     N8   1   39   0 
     N9   0   2   5 
+0

、その後、あなたの16個のデータフレームを持つリストがlstと呼ばれていると仮定すると? – Sotos

+0

うーん、私はそれを正確に働かせることができませんでしたが、私はあなたが意味するものを取得します。しかし、それはその変数$ SEM内の周波数を計算しますが、私はこれらの小さな "テーブル"を16個持っています。周波数を計算するためにそれらをすべて組み合わせることができるかどうか疑問に思っていました。 – ghostmom

+0

あなたのテーブルはリストにありますか? – Sotos

答えて

1

リストから関数を適用できます。 `tは((SEM、1、機能(I)I /合計(I))を適用)`

lapply(lst, function(i) t(apply(i[,-1], 1, function(j) j/sum(j)))) 
+1

それは働いた!問題を解決したコードがlapply(x、function(i)t(apply(i [drop = F]、1、function(j)j/sum(j)))))でした。どうもありがとう! – ghostmom