2014-03-27 56 views
0

我有一個excel文件(.xlsx),它包含三列,標題爲:'datetime'(例如:2008年10月1日10時10分,10/1/2008 0: 20等),'RH'(例如:0.46)和'wind_mps'(例如:3.71)。我希望將10分鐘間隔數據轉換爲RH和wind_mps列的小時平均數據。將10分鐘的間隔數據轉換爲小時平均值

我無法將Excel數據插入到此問題中。對於那個很抱歉。如果有人告訴我如何處理,我可以編輯我的問題。

類似的問題已在how to convert by the minute data to hourly average data in R得到解答,但我是R新手,無法對我的數據使用相同的技術。我也嘗試使用'zoo','chron'和'xts'軟件包來執行此操作,如http://rpubs.com/hrbrmstr/time-series-machinations,但它們似乎在R 3.02中不起作用。

我試圖在Excel中做到這一點,但無法找到一個相當簡單的技術。

我能夠實現將每小時數據轉換爲使用Excel宏的另一個數據集的日常平均值的類似任務,但我無法爲10分鐘的數據做到這一點。宏如下:

Global year As Integer 
Sub Calculate() 
    Dim start_year As Integer 
    Dim end_year As Integer 
    Dim cell_count As Integer 
    start_year = Cells(19, "M").Value 
    end_year = Cells(48, "M").Value 
    year = start_year 
    cell_count = 19 
    Do While year < (end_year + 1) 
     Dim row As Integer 
     Dim sum As Double 
     Dim count As Integer 
     Dim init_row As Integer 
     init_row = 6 
     sum = 0 
     count = 0 
     Dim cv As Integer 
     cv = 3 
     Do Until cv = year 
      cv = Cells(init_row, "C").Value 
      init_row = init_row + 1 
     Loop 
     row = init_row - 1 
     Worksheets("Sheet1").Activate 
     Dim cv1 As Integer 
     cv1 = Cells(row, "C").Value 
     Do While cv1 = year 
      sum = sum + Cells(row, "F").Value 
      count = count + 1 
      row = row + 1 
      cv1 = Cells(row, "C").Value 
     Loop 
     Cells(cell_count, "N").Value = sum 
     Cells(cell_count, "O").Value = count 
     Cells(cell_count, "P").Value = sum/count 
     cell_count = cell_count + 1 
     year = year + 1 
    Loop 
End Sub 

對於我來說,使用R,Excel函數,宏或其他技術並不重要。如果有人能告訴我如何將這個大約50000的RH和wind_mps數據集轉換爲小時平均值,那將會很棒。

在此先感謝。

+0

什麼這是很容易與XTS /動物園,我向你保證,他們有R工作-3.0.2。 –

+0

所以你想,每個值的小時平均值(換句話說,它會重複6次 - 每10分鐘一次)? –

+0

@JoshuaUlrich我試過xts/zoo。有沒有辦法將數據幀轉換爲xts支持的矩陣?我嘗試這樣做: matrix_rhwind <-as.xts(rh_wind2,DATEFORMAT = 'POSIXct') 卻得到:「錯誤as.POSIXlt.character(X,TZ,...): 字符串不一個標準的明確格式' 你知道發生了什麼? –

回答

1

這可以通過Excel數據透視表很容易實現......

  1. 選擇您的數據,並在頂部的菜單功能區,去Insert>Pivot Table

在數據透視表設計師:

  1. 選擇日期時間爲你的行標籤
  2. 選擇RH &個wind_mps爲你的價值觀
  3. 爲您的價值觀,點擊它們,並選擇Value Field Settings>Average

在數據透視表本身:

  1. 現在,轉到您的數據透視表本身並右鍵單擊在第一列中的任一日期
  2. 從上下文菜單中選擇Group,然後從出現的列表中選擇Hours

這應該給你你正在尋找與所有

希望這沒有編程做什麼你想

+0

謝謝。我試過了,但它似乎以奇怪的方式彙總了值。我希望我知道如何將Excel數據複製到此評論中,而不會丟失格式,以便我可以告訴你發生了什麼。 –

+0

描述爲?這可能是一個數據透視表的問題,可以很容易地修復... –

+0

一切都很好,直到'小組''小時'。我最終得到的數據與標籤'12AM''1AM'等聚合在一起,每個這樣的標籤下有大約88個值。對於我來說,最好的結果就是一天中每個小時一行的數據彙總。有沒有辦法做到這一點? –

相關問題