2016-10-20 3 views
0

時間ごとの気候データを再構成しようとしていますが、正しく取得できません。 ここにデータがあります。 365レベル+/- 1年に依存)、1時間変数(24レベル)、1つの数値温度(+/- 8760 obs)。第3列の値を用いて時間とデータを整理します。

head(df) 
####   .day .hour temperature 
#### 2 2013-01-01  1   19 
#### 3 2013-01-01  2   19 
#### 4 2013-01-01  3   18 
#### 5 2013-01-01  4   18 

私の予想出力は、このようなdata.frameですが、代わりに私は内部の温度値必要な値1(lenghts)の...

 .day 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 
1 2013-01-01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
2 2013-01-02 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
3 2013-01-03 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
4 2013-01-04 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

この出力はdcast(.day~.hour)で生成されます、イルも成功していないtidyrを試しました。これどうやってするの?どこかに欠けている線がある場合(1日が欠落しているなど)、どうでしょうか?ありがとう。

+2

何をしようとする幅広いフォーマットに長いデータを再フォーマットです。 'tidyr'は、この目的にふさわしい適切な関数' spread'を持っています。ヘルプファイルには十分な例がありますhttps://cran.r-project.org/web/packages/tidyr/tidyr.pdf#page.14 – Frash

+0

@Frash今は 'spread'でこのエラーが出ます:*エラー:重複しています行(2138,2161)、(7178,7179)*の識別子。私はそれを解決しようとすると、それが動作するかどうかを知らせます。 – agenis

+0

これはおそらく1年に2回の時間変更のためです。 – agenis

答えて

1

データを長い形式から広い形式に再フォーマットするには、tidyrに適切な関数spreadを使用します。ヘルプファイル、ここで十分な例を持っていますhttp://cran.r-project.org/web/packages/tidyr/tidyr.pdf#page.14

require(tidyr) 
spread(df, .hour, temperature, fill = NA) #fill any missing data with NA 

同じ変更を行うのに利用できる他のオプションの包括的なツアーがここに与えられます。https://stackoverflow.com/a/9617424/2724299

関連する問題