1

4列のデータフレームがあります...日付、時間、場所、値。

データを使ってやりたいのは、一意の日付/時間/場所ごとに要約統計量を考え出すことです。私ができるのでこれは簡単なようです

x <- subset(my.df[,4], 
            my.df[,2]==(some parameter) & my.df[,3]==(another parameter)
           ) 

次に、xから必要な要約統計量を取得します。ただし、注意が必要なのは、前述の値のそれぞれの違いから要約統計量も取得したいということです。loc=1したがって、たとえば、いつからの値の差を取りたいのですが、どちらかのloc内に欠落している日があるvalue場合loc=2hour=1ない場合があります。my.dfおそらくうまくいくだろうと私が持っていた1つのアイデアは、 2倍幅を広くするために形を変えることです。最初にそれをで広くしtimevar=loc、次にそれをで再形成して、timevar=hourDate、value.1.1、value.1.2などの列を持つwide.dfを作成します。ここで、最初の整数はloc、2番目の整数は時間、各行は一意の日付。

20分の再形成を伴わないこれを行うためのより簡単な方法はありますか(最初のdfは4つの変数で約9493401行であり、次に14857列で720行に拡張しますか?
@Brandon:これがstrの出力です。私はまだあなたの提案を試していません。

        'data.frame':   9493401 obs. of  4 variables:
    $ Loc  : int  1 1 1 1 1 1 1 1 1 1 ...
    $ Date: POSIXct, format: "2010-10-29" "2010-10-29" ...
    $ Hour     : int  1 2 3 4 5 6 7 8 9 10 ...
    $ Value   : num  7.63 4.07 4.9 1.61 0.34 -5.23 2.11 2.39 7.2 4.41 ...
4

1 に答える 1

1

この点でかなりきびきびしているように見えるものがdcastあります:reshape2

library(reshape2)
dat <- data.frame(date=sample(1:100,9493401,replace=TRUE),
                  hour=rep(1:24,1000000)[1:9493401],
                  loc=rep(letters[1:9],1054823)[1:9493401],
                  value=rnorm(9493401))     

dcast(dat,date + hour ~ loc) 

loc/hour のカウントなども実行できます

dcast(dat, date + hour ~ loc*hour)

ケースに固有の回答が必要な場合は、より多くの情報を提供する必要があります。

于 2012-11-27T00:00:37.523 に答える