2016-06-29 16 views
1

複数の条件で条件付き合計を取るためにのみ4、完全なデータの4分の3とどのようにして記録を保持し、私は2つの質問持ってする方法:Rコーディング:私は会社の四半期データとデータフレームを持っている

1:どのように私はデータの4分の3を持つ企業のみの記録を残しています(データの1,2または3/4で表示されることがありますが、データフレーム全体で各会社に4分の3が必要です)

2:年と会社の2つの条件を考慮して、4つの四半期にわたって年間平均または合計(可変タイプに基づく)を取っていきたいと思います。

たとえば、1984年の会社iでは、4つの異なる四半期の値に基づいて、平均在庫金額と総収益がそれぞれI1984とREV1984となります。平均値との和のために - - 私は現在、これらのコード行を使用していますが、Rは、「NA」を返し続け、私が検索し、代替案を探してきましたが、何も動いていないようにみえ:

Company i_ I1984 <- with(R, mean(I [FY == "1984" & Co == "AAR CORP" ])) 
Company i_ REV1984 <- with(R, sum(REVQ [FY == "1984" & Co == "AAR CORP" ])) 

Rは私のデータフレーム です私は< - 四半期ごとの在庫 REVQ < - 四半期ごとの売上高は明らか

私は新しいdata.frameにそれぞれの新しい平均/合計値と場所を見つけると、引用符で囲まれた値は、動的行われます。

ご協力いただければ幸いです。 「X線」この例では

company<-c("xray", "xray", "xray", "xray", "foxrot", "foxrot", "delta",  "kilo", "kilo") 
qtr <-c("1","2","3","4", "1", "2","4", "2","3") 

IQ <- rnorm(9,0,10) 
REVQ <- rnorm(9,0,10) 
AssetQ <- rnorm(9,0,10) 
CashQ <- rnorm(9,0,10) 

#Modified dataframe 
data<-data.frame(company, qtr, IQ, REVQ, AssetQ, CashQ) 

我々は平均/合計を取るいる唯一の企業でなければなりません:私は以下のコード例を含めました

ありがとうございます。 (下のコメントから、あなたのDF構造を持つ)あなたの最初の質問については

+2

次の2つの異なる質問があります。あなたはそれらを別々に尋ねるべきです。また、[再現性の高い例を作る方法](http://stackoverflow.com/q/5963269/903061)を見てください。データのスナップショットはほとんど役に立ちませんが、 dput() 'は貴重です – Gregor

+2

この質問を1つの質問に編集し、もう1つの質問に対して新しい質問をし、両方のデータを再現性よく共有してください! (つまり、「NA」はおそらくデータの値が欠落している可能性が高いため、最初の質問に答えると2番目の質問はまったく必要ないかもしれません) – Gregor

+0

私は別の質問として再投稿しています。ありがとう –

答えて

0

:あなたの2番目の質問については

company<-c("xray", "xray", "xray", "xray", "foxrot", "foxrot", "delta", "kilo", "kilo") 
qtr <-c("1","2","3","4", "1", "2","4", "2","3") 
IQ <- rnorm(9,0,10) 
REVQ <- rnorm(9,0,10) 
AssetQ <- rnorm(9,0,10) 
CashQ <- rnorm(9,0,10) 
#Modified dataframe 
data<-data.frame(company,qtr, IQ, REVQ, AssetQ, CashQ) 


#Using the dplyr package: 
data.complete<-data.frame(data %>% group_by(company) %>% filter(n() == 4)) 

#Get your sum and means (note that the 'by' command will separate the sums based on the company factor when you have more than 1 company with complete data) 
aggregate(data.complete[,3:6], by=list(data.complete$company), sum) 
aggregate(data.complete[,3:6], by=list(data.complete$company), mean) 
+0

私は近いですが、あなたのサンプルデータフレームは私のものとは少し異なります。見ている/働いているものと同じページにあるので、サンプルコードを変更しました:company <-c( "xray" 「xray」、「xray」、「xray」、「foxrot」、「foxrot」、「delta」、「kilo」、「kilo」) qtr <-c( "1"、 "2"、 "3" (9,0,10)IQ < - rnorm(9,0,10) REVQ < - rnorm(9,0,10) AssetQ(4、1、2、4、2、3) < - rnorm(9,0,10) CashQ < - rnorm(9,0,10) #変更されたデータフレーム data <-data.frame <会社名、Qtr、IQ、REVQ、AssetQ、CashQ) –

+0

各会社の "1-2-3-4"四半期の不均一なシーケンス(すなわち、xrayはすべての四半期で唯一の企業です)、このデータフレームには「NA」エントリがありません。(私は既にデータのクリーンアップの段階でこれらを削除しています) –

+0

この新しいデータフレームでは、 "xray"私が実行するために残っているもの、例えば、インベントリ平均と4つの四半期にわたる収入合計です。私は本当に助けに感謝し、より良い例を最初に提供しないことをお詫びします –

関連する問題