2016-07-24 3 views
-3

私はプレーヤー、トーナメント、日付によって記録されたすべてのゴルフスコアのcsvファイルを持っており、過去50の平均を計算する列を作成したい日付フィールドを使用しているプレイヤーの得点。それはプレーヤーによって平均を実行する必要があります。名前と日付で最後の50点のランニング平均を書くR

例:表

PLAYER,SCORE,Tournament,ROUNDDATE,Observation,ID 
Matthew Fitzpatrick,60,KLM Open,42258,1,1 
Jaco Van Zyl,61,Turkish Airlines Open,42306,1,2 
Paul Lawrie,61,KLM Open,42257,1,3 
Wade Ormsby,61,KLM Open,42257,1,4 
Callum Shinkwin,62,Shenzhen International,42483,1,5 
Danny Willett,62,Omega European Masters,42209,1,6 
Joakim Lagergren,62,Alfred Dunhill Links Championship,42280,1,7 

私はこのコードを試みたが、それは単に何の平均を正確に同じ結果を生成しない

get.mav < - 機能(BP、N = (bp、na.rm = TRUE) + bp < - na.locf(bp、bp [1]))は、 na.rm = FALSE) + if(length(bp) +} 試験< - 非公開に +(骨材(SCORE〜PLAYER、テスト、get.mav、na.action - と(試験、試験[順序(PLAYER、ROUNDDATE)])

試験$ SCORE_UPDATED < = NULL、N = 50)の$ SCORE)あなただけの日付で手配して、ここでは最初の50の簡単な例であることを意味することができます テスト

+0

'あなたのデータをdput'してくださいまたはこれを共有するより良い方法をいくつか使用してください。また、数百行を共有したくない場合は、例として最後の2つのスコアの合計を求めてください。大規模なデータセットにソリューションを適用すると、2から50に変更できます。 SASは何ですか?古いものは、FOSSの統計言語と競争できない70年代の非常に冗長な統計の恐竜を支払ったことを意味しますか?誰もまだそれを使用していません。私はあなたを信じません。 –

+0

SASのTIBOEインデックスのランキングは1.083%、Rは1.514%です。正確にはマージンではなく、Rに比べて2倍から4倍のユーザーベースが推定されています。 – hrbrmstr

答えて

0

# Sample Data 
dat <- data.frame(date = seq(as.Date("2000/1/1"), by = "day", length.out = 365), 
        score = round(rnorm(365, 70, 5))) 

# Arrange and get mean of first 50 obs 
dat <- dat[order(dat$date, decreasing = TRUE),] 
mean(dat$score[1:50]) 
+0

これはプレイヤーの平均ではありません。 –