2016-08-12 2 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의 평균을 KEGGvalue으로하고 싶습니다. 따라서 각각의 KEGGvalue은 고유하며 중복이 없습니다.

+1

당신은 원본 데이터의 첫 번째 열에 대한 걱정해야합니다. 그것을 읽을 때 제대로 구문 분석하지 않은 것 같습니다. –

+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는 정규 표현식과 일치 할 수 있도록 인수를 사용하여 해당 열을 정리할 수 있습니다 번호. dplyr를 사용하여 그룹화 이후

, 우리는

library(dplyr) 
ColorMap %>% group_by(KEGGnumber) %>% summarize(mean(Colors)) 
관련 문제