1

次のような構造のデータフレームがあります。

Trial Index    Condition1    Condition2    Measures
1              A             Y             ...
2              A             Y             ...        
3              B             Y             ...
4              B             Y             ...
5              A             Z             ...
6              A             Z             ...        
7              B             Z             ...
8              B             Z             ...

Condition1とCondition2の各組み合わせ、およびマージンについて、いくつかの要約メジャーを計算したいと思います。ddplyに複数の呼び出しを使用してこれを行うことができますが、次のような単一のデータ構造を取得する簡単な方法があるかどうか疑問に思いました。

Condition1    Condition2    Mean    Median    ....
A             Y             ...     ...       ....
A             Z             ...     ...       ....
A             -             ...     ...       ....             
B             Y             ...     ...       ....
B             Z             ...     ...       ....
B             -             ...     ...       ....
-             Y             ...     ...       ....
-             Z             ...     ...       ....
4

2 に答える 2

3

@DWinは正しいtablesです。ここではパッケージが正しい手がかりかもしれません。フォーマットを気にせずに例を次に示します。

library(tables)
d1 <- data.frame(id = 1:10, c1 = sample(c("a","b"), 10, replace = TRUE), 
        c2 = sample(c("c", "d"), 10, replace = TRUE), measures = rnorm(1:10))
t1 <- tabular((c1 + c2 + c1*c2 +1) ~ (measures)*(mean + median), data = d1)

             measures        
             mean     median 
      c1 a   -0.33306 -0.1801
         b   -0.54121 -0.6381
      c2 c   -0.04862  0.1647
         d   -0.69615 -0.8129
 c1 a c2 c   -0.26195 -0.2619
         d   -0.38047 -0.1801
    b    c    0.16472  0.1647
         d   -1.01182 -1.1863
         All -0.43713 -0.4678

ただし、構文を理解するには時間がかかります。プラス面では、テーブルを LaTeX にエクスポートする機能を提供します。そのオブジェクトのすべてのラベル付けが必要ない/不要な場合はtabular、 を介して値を抽出できますas.matrix(t1, format = as.numeric)

注: これが機能するには、式c1c2左側にある必要がありますfactor

于 2013-01-09T20:42:45.683 に答える
3

R の「報告」の難しさについて、何年にもわたって苦情が寄せられてきました。テーブル内に小計 (またはサブ平均) と総計を挿入するための組み込み関数は実際にはありません。SQL ドライバーへのインターフェースはいくつかの解決策を提供する可能性がありますが、それは単純とは言えません。データベースの概念を使用して質問をしていないので、それはあなたにとって良くないと思います。これは、前の回答からの結果として合計を使用する全ベース R アプローチです。

R: データフレームからの集計として列の合計と行の合計を計算する

マージナルを使用して配列を構築し、それを で「平坦化」した場合、進歩への道があるかもしれませんftable。ここを参照してください:

R でのグループ化と並べ替え

tablesダンカン・マードックによるパッケージがあります。それがおそらく私が答えに近づくことができる最も近いものです。しかし、要求された複雑さを備えたRオブジェクトを取得するための「簡単な方法はありますか」という特定の質問に対する答えは...いいえ...少なくとも私が知っていることです。

于 2013-01-09T20:18:23.500 に答える