2016-08-12 9 views
0

私はColorMapという名前のdfを持っていますが、同じフィーチャに対応するすべての数値を平均することを検討しています。ここにdfがあります。Rデータフレームで重複値を平均化する

> ColorMap 
    KEGGnumber Colors 
1 c("C00489" 0.162 
2  "C06104" 0.162 
3 "C02656") 0.162 
4  C00163 -0.173 
5 c("C02656" -0.140 
6  "C00036" -0.140 
7  "C00232" -0.140 
8  "C01571" -0.140 
9 "C00422") -0.140 
10 c("C00402" 0.147 
11 "C06664" 0.147 
12 "C06687" 0.147 
13 "C02059") 0.147 
14 c("C00246" 0.069 
15 "C00902") 0.069 
**16  C00033 0.011 
... 
25  C00033 -0.073** 
26  C00048 0.259 
**27 c("C00803" 0.063 
... 
37  C00803 -0.200 
38  C00803 -0.170** 
39 c("C00164" -0.020 
40 "C01712" -0.020 
... 
165 c("C00246" 0.076 
166 "C00902") 0.076 
**167  C00163 -0.063 
... 
169  C00163 0.046** 
170 c("C00058" -0.208 
171 "C00036") -0.208 
172  C00121 -0.178 
173  C00033 -0.193 
174  C00163 -0.085 

私は最終的には彼らはお互いの隣にある必要はありません。この

> ColorMap 
    KEGGnumber Colors 
1  C00489 0.162 
2  C06104 0.162 
3  C02656 0.162 
4  C00163 -0.173 
5  C02656 -0.140 
6  C00036 -0.140 
7  C00232 -0.140 
8  C01571 -0.140 
9  C00422 -0.140 
10  C00402 0.147 
11  C06664 0.147 
12  C06687 0.147 
13  C02059 0.147 
14  C00246 0.069 
15  C00902 0.069 
**16 C00033 0.031** 
26  C00048 0.259 
**27 C00803 -0.100** 
39  C00164 -0.020 
40  C01712 -0.020 
... 
165 C00246 0.076 
166 C00902 0.076 
**167 C00163 0.0085** 
170 C00058 -0.208 
171 C00036 -0.208 
172 C00121 -0.178 
173 C00033 -0.193 
174 C00163 -0.085 

ようになりたいと思い、私は単純に簡単に可視化のためのそれらを選びました。私はすべてColorsの平均を1つのKEGGvalueにしたいと思います。したがって、各KEGGvalueは一意であり、重複はありません。

+1

を持ってdplyrを使用してグループ化します。読んだときに正しく解析されなかったように見えます。 –

+0

はい、私は知っていますが、それは簡単にbashの正規表現を介して修正することができ、私はそれに心配していません。しかし、あなたがrの解を持っているなら、それを聞いてみたいと思います。 –

+0

最初の列を掃除することができれば、残りの部分は[このr-faqの]欺瞞です。(http://stackoverflow.com/q/11562656/903061) – Gregor

答えて

1

あなたは、任意の数に続く大文字のCに一致するように、あなたに言って、この場合には、シンプルなものを

library(stringr) 
ColorMap$KEGGnumber <- str_extract(ColorMap$KEGGnumber, "[C][0-9]+") 

patternはあなたが正規表現と一致することを可能にする引数を使用して、その列をきれいにすることができます数字。その後

、我々はあなたが元のデータの最初の列を心配する必要があります

library(dplyr) 
ColorMap %>% group_by(KEGGnumber) %>% summarize(mean(Colors))