1

rpivotTableパッケージで使用する計算フィールドを作成したいのですが、これはExcelの機能と同様です。例えばrpivotTableでの計算フィールドの追加

、次の表を考えてみます。

+--------------+--------+---------+-------------+-----------------+ 
| Manufacturer | Vendor | Shipper | Total Units | Defective Units | 
+--------------+--------+---------+-------------+-----------------+ 
| A   | P  | X  |  173247 |   34649 | 
| A   | P  | Y  |  451598 |   225799 | 
| A   | P  | Z  |  759695 |   463414 | 
| A   | Q  | X  |  358040 |   225565 | 
| A   | Q  | Y  |  102068 |   36744 | 
| A   | Q  | Z  |  994961 |   228841 | 
| A   | R  | X  |  454672 |   231883 | 
| A   | R  | Y  |  275994 |   124197 | 
| A   | R  | Z  |  691100 |   165864 | 
| B   | P  | X  |  755594 |   302238 | 
| .   | .  | .  |   . |    . | 
| .   | .  | .  |   . |    . | 
+--------------+--------+---------+-------------+-----------------+ 

(私の実際のテーブルは、など多くの複数の列、ディメンションとメジャーの両方、時間を持っていると私はそのような複数の「計算列」を定義する必要があります)

不良率(Defective Units/Total Units)を計算し、最初の3つの列のいずれかで集計したい場合、私はできません。これは私の欠陥を与えてしまった

myData[, Defect.Rate := Defective_Units/Total_Units] 

は、私が参照( :=)によって割り当てを試みたが、それはまだ動作していないようでしたし、不良率(すなわち、​​)を、代わりの sum(Defective_Units)/sum(Total_Units)を総括しました計算されたフィールドを宣言することはできますか?これは集計後に評価される単なる式ですか?

+0

を計算フィールドの任意の回避策がある.... –

答えて

0

pivottable.jsを作成した人は、 "Sum over Sum"というアグリゲーターを実装することで、あなたのような(そして今の私のような)事例を予見しています。 https://github.com/nicolaskruchten/pivottable/blob/master/src/pivot.coffee#L111およびhttps://github.com/nicolaskruchten/pivottable/blob/master/src/pivot.coffee#L169

パラメータ「aggregatorName」として「Sum over Sum」を使用し、「vals」パラメータに商を割り当てる列を使用します。ここ

は再現性mtcarsデータから無意味な使用例は次のとおり

require(rpivotTable) 
data(mtcars) 
rpivotTable(mtcars,rows="gear", cols=c("cyl","carb"), 
      aggregatorName = "Sum over Sum", 
      vals =c("mpg","disp"), 
      width="100%", height="400px") 
関連する問題