2014-02-13 108 views
0

現在我有一堆來自不同來源的數據的行。列A包含源文件的名稱,其餘列是從這些源中提取的值和分類。合併重複行excel

我想要做的是將行與相同的源文件合併。

目前:

Source1的,值1,值2,值3

Source1的,值4,值5

源2,值1,值2

源2,值3,值4

我需要它看起來像

源1,值1,值2,值3,值4,值5

源2,值1,值2,值3,值4

我靈活,我怎麼去這樣做。如果它更容易導出爲CSV格式,並使用它在bash,而不是在Excel做我能做到這一點

+0

如果你覺得真的很冒險,那麼在數據分析中,這就是所謂的將長數據變成寬數據或「重塑」數據。當然不是最快的方法(先學習一些像R一樣的統計/數據包),但是,你去了。 – Jody

回答

0

我認爲這只是做它在awk中,但我要養活孩子:-):

awk -F, '{if(!length(d[$1]))d[$1]=$1;for(i=2;i<=NF;i++)d[$1]=d[$1]","$i}END{for(i in d)print d[i]}' yourfile.csv 

輸出:

Source1 , value1, value2, value3, value4, value 5 
Source2 , value 1, value 2, value 3, value 4 

的輸出線將要被存儲在數組d []。在讀取每一行時,我檢查是否未定義行上第一個字段索引的數組元素d [](即length = 0),如果未定義,則將字段1存儲在該元素中(即源)。然後我將行中所有剩餘的字段連接到我存儲的字符串上。最後,我打印出d []中的所有字符串。