2016-04-04 13 views
1

私は巨大なデータセットを持っているので、「月額子コストと月額親コスト%」を計算する必要があります。私はRには新しく、ベストを尽くしました。しかし、それほど多くはありません。助けてください。Rパーセンテージを計算して新しい列として追加する方法は? (例の最後の2列)

私の元のデータセットには、Prent/Child/Item/Month/Costデータがあります。 私は2つの新しい列を計算するために持っている...

月刊児童コスト% = 100 /(総アイテムはその子のためにその特定の月に費用)*項目は1行のため

例費用:100/100 * 70 = 70)

毎月親コスト% = 100 /全アイテム*アイテムが1行目の

例コスト)その親のために、その特定の月の費用:345分の100 * 215(合計それのためのミルクコストt parent)= 62.3

注:Monthly_Parent_Cost%に重複していても問題ありません。私は、親とアイテムによって異なる値しか得られません。

Parent Child Item Month Cost Monthly_Child_Cost%  Monthly_Parent_Cost% 
    1001 22 Milk Jan  70  70  62.32 
    1001 22 Bread Jan  20  20  31.88 
    1001 22 Eggs Jan  10  10  5.8 
    1001 22 Milk Feb  60  60  62.32 
    1001 22 Bread Feb  40  40  31.88 
    1001 11 Milk Mar  40  40  62.32 
    1001 11 Bread Mar  50  50  31.88 
    1001 11 Eggs Mar  10  10  5.8 
    1001 11 Milk Apr  45  100  62.32 
    1002 44 Milk Jan  20  20  40.3 
    1002 44 Bread Jan  40  40  33.2 
    1002 44 Eggs Jan  40  40  26.3 
    1002 44 Milk Feb  34  34  40.3 
    1002 44 Bread Feb  66  66  33.2 
    1002 55 Milk Mar  20  20  40.3 
    1002 55 Bread Mar  20  20  33.2 
    1002 55 Eggs Mar  60  60  26.3 
    1002 55 Milk Apr  79  100  40.3 
+0

お試しいただいたコードはありますか? – r2evans

答えて

1

あなたはChild + Month + ItemともParent + Month + Itemによりコスト値を集計するaggregate機能を使用することができます。この後、結果を結合して結果のベクトルを新しいものとして追加することができます。

# Aggregate 
childCosts <- aggregate(x = ds$Cost, by=list(ds$Child, ds$Month, ds$Item), FUN=sum) 

# modify column names for easy merge 
colnames(childCosts) <- c("Child", "Month", "Item", "Monthly_child_total") 
ds2 <- merge(ds, childCosts) 

# Compute desired result 
ds2$Monthly_Child_Cost_Pct <- ds2$Cost*100/(ds2$Monthly_child_total) 

P.S.私の数式は正しくないかもしれません。私はあなたが2つの列のために何をしたいのかはっきりしていません。それに応じてコードを調整します。

+0

ありがとうございました。それは私を助けてくれました。私は微調整する必要がありますが、それはうまくいきました... – Murali

+0

これは私の完全なコードです...私は私が追加したコードを追加します..(私はRと学習に新しいことを覚えておいてください) – Murali

+0

@Murali Iあなたの編集は他の3人の批評家によって拒否されました。何もできませんでした。とにかく、StackOverflowの目的は銀製のプラッターで完全な答えを出すのではなく、いくつかのコード例で正しい方向に導くことです。 –

関連する問題