3

私は新しいRユーザーです。計算と分割されたデータフレームの簡単なsapply関数の例があります。私のデータには、30 分ごとの風速と方向が含まれています。13年間の研究のために毎日のワイブル分布を知りたいです。そのため、私のデータセットは時間に基づいて分割されています。meansd

私のデータは次のようになります。

    Time             windspeed direction    Date            day_index
1   24/07/2000 13:00    31       310    2000-07-24 13:00:00 2000_206
2   24/07/2000 13:30    41       320    2000-07-24 13:30:00 2000_206
3   24/07/2000 14:30    37       290    2000-07-24 14:30:00 2000_206
4   24/07/2000 15:00    30       300    2000-07-24 15:00:00 2000_206
5   24/07/2000 15:30    24       320    2000-07-24 15:30:00 2000_206
6   24/07/2000 16:00    22       330    2000-07-24 16:00:00 2000_206
7   24/07/2000 16:30    37       270    2000-07-24 16:30:00 2000_206  

split-apply が日数を調べるための R コードの例は次のとおりです。

my.summary <- sapply(split(ballarat_alldata[1:200, ],
                           ballarat_alldata$day_index[1:200]),
                     function(x) {
                         return(c(my.mean=mean(x$windspeed),
                                  my.sd=sd(x$windspeed)))
                     })

形状とスケールのパラメーターを計算するためのワイブル分布コードは次のとおりです。

set1 <- createSet(height=10,
                  v.avg=ballarat_alldata[,2],
                  dir.avg=ballarat_alldata[,3])
time_ballarat <- strptime(ballarat_alldata[,1], "%d/%m/%Y %H:%M")
ballarat <- createMast(time.stamp=time_ballarat, set1)
ballarat <- clean(mast=ballarat)
ballarat.wb <- weibull(mast=ballarat, v.set=1, print=FALSE)

Rこれら 2 つのコード セットを組み合わせて、毎日ワイブル パラメーターを計算し、マトリックスに格納するにはどうすればよいですか?

いろいろやってみましたがうまくいきません。
これら 2 セットのRコードを組み合わせる場合、風速と風向の範囲も変更する必要がありset1 <- createSet(height=10, v.avg=ballarat_alldata[,2], dir.avg=ballarat_alldata[,3])ますか?

4

1 に答える 1

1

ここには 2 つの別々の問題があるようです: 1) データの集計 2) ワイブル パラメーターの計算。最初の質問については、次のようなものをお勧めします。

library(plyr)
Wind <- ddply(Wind, .(as.Date(Date)), transform, 
Wind.mean = mean(windspeed), Wind.sd = sd(windspeed))
#       windspeed direction      Date2    Time2 day_index Wind.mean  Wind.sd
#       1        31       310 2000-07-24 13:00:00  2000_206  36.33333 5.033223
#       2        41       320 2000-07-24 13:30:00  2000_206  36.33333 5.033223
#       3        37       290 2000-07-24 14:30:00  2000_206  36.33333 5.033223
#       4        30       300 2000-07-25 15:00:00  2000_206  28.25000 6.751543
#       5        24       320 2000-07-25 15:30:00  2000_206  28.25000 6.751543
#       6        22       330 2000-07-25 16:00:00  2000_206  28.25000 6.751543
#       7        37       270 2000-07-25 16:30:00  2000_206  28.25000 6.751543

ライブラリsummariseからも使用できるパラメーターを計算する方法について、もう少しヒントを教えてください。plyr

ddply(Wind, .(Date2), summarise, rweibull(# I'm not sure what goes here

お役に立てれば。

于 2013-12-13T16:15:58.670 に答える