2015-12-14 141 views
1

我有一個雙數的氣候數據。每10分鐘在不同站點測量兩年。有些測量值缺失(每個站不同)比較數據列表,根據條件創建新列表,Mathematica

我想選擇具有相同日期和時間的行,並將它們放入新表中以開始比較。

的tableorder是日期,時間,價值,日期2,時間2,VAL2

{{ 20120806, 600, 253, 20120805, 1350, 565}, 
    { 20120806, 610, 280, 20120805, 1400, 609}, 
    { 20120806, 620, 306, 20120806, 600, 282}, 
    { 20120806, 630, 333, 20120806, 610, 305}, 
    { 20120806, 640, 353, 20120806, 620, 334}, 
    { 20120806, 650, 380, 20120806, 630, 364}, 
    { 20120806, 700, 406, 20120806, 640, 386}, 
    { 20120806, 710, 426, 20120806, 650, 409}} 

的結果應該是一個表,一個日期,時間和兩個值。

感謝

+0

像'選擇[名單,#[[1]] ==#[ 4]]&] [[All,{1,2,3,5,6}]](如果這不是你的意思,你應該展示預期的輸出) – agentp

+0

我剛試過。它給了我一個空的{}有沒有可能讓第二個條件? {20120806,620,306,20120806,620,334}, {20120806,630,333,20120806,630,364}, {20120806,640,353,20120806,640,386}} 然後沒有日期 {{20120806,600,253,282}, {20120806,610,280,305}, {20120806,620,306,334}, {20120806,630,333,364}, {20120806, 640,353,386}} – Matthias

+0

並且可以將丟失的測量結果作爲缺失標記返回? – Matthias

回答

0

得到它現在的工作

Select[mix, #[[2]] == #[[6]] && #[[3]] == #[[7]] &][[All, {1, 2, 3, 5, 
6, 7, 8}]] 
+0

示例數據只有6列..也許你錯過了一些逗號? – agentp

0
list = {{20120806, 600, 253, 20120805, 1350, 565}, {20120806, 610, 
    280, 20120805, 1400, 609}, {20120806, 620, 306, 20120806, 600, 
    282}, {20120806, 630, 333, 20120806, 610, 305}, {20120806, 640, 
    353, 20120806, 620, 334}, {20120806, 650, 380, 20120806, 630, 
    364}, {20120806, 700, 406, 20120806, 640, 386}, {20120806, 710, 
    426, 20120806, 650, 409}}; 

打入單獨列出:

{alist, blist} = Transpose /@ Partition[Transpose[list], 3]; 

兩個列表中使出了渾身的日期/時間值

alldates = 
    [email protected][{list[[All, {1, 2}]], list[[All, {4, 5}]]}, 1]; 

功能 「失蹤」 添加到列表中,如果提供的日期/時間丟失:

addmissing[dlist_, list_] := 
    Module[{r}, r = Select[list, #[[1 ;; 2]] == dlist &]; 
    If[[email protected] == 0, Append[dlist, "Missing"], [email protected]]] 

Flatten[{addmissing[#, alist], addmissing[#, blist]}, 1] & /@ 
    alldates // MatrixForm 

enter image description here

+0

謝謝。那很棒。現在我試圖得到每小時的平均值。感謝你的幫助! – Matthias

+0

我現在正在運行代碼,需要花費數小時。有小費嗎?我有100000行計算... – Matthias