워라밸 중독자

[R] separate_rows를 이용해 1:n 테이블을 1:1 테이블로 만들기 본문

카테고리 없음

[R] separate_rows를 이용해 1:n 테이블을 1:1 테이블로 만들기

Ufungi 2023. 10. 19. 09:31

tidyr 패키지의 separate_rows는 특정 문자(여기선 ";")로 합쳐진(collapsed) 열을 여러 행으로 분리해준다.

즉 1:n 테이블을 1:1 테이블로 만들어준다.

library(tidyr)

raven <- read.table("Raven_EC_number.txt", header =T, sep = "\t", fill = T, quote ="")
head(raven)
   EC.NUMBER   GENE.ASSOCIATION
1   3.1.3.18      g12670;g14288
2  2.1.1.355          g660;g724
3    2.7.4.7              g1947
4  2.7.1.150 g3825;g3826;g13382
5 1.14.11.66             g15073
6   2.4.2.19              g7969                                                                                                                                        g4047

# Split the "GENE.ASSOCIATION" column by ";" and separate into different rows
raven <- separate_rows(raven, GENE.ASSOCIATION, sep = ";")
head(raven)
# A tibble: 6 × 2
  EC.NUMBER GENE.ASSOCIATION
  <chr>     <chr>           
1 3.1.3.18  g12670          
2 3.1.3.18  g14288          
3 2.1.1.355 g660            
4 2.1.1.355 g724            
5 2.7.4.7   g1947           
6 2.7.1.150 g3825