R에서 열들을 행으로 가져와서 데이터 프레임 열의 갯수를 줄이는 방법입니다. 
여기서 사용될 패키지는 tidyverse 입니다.


일단 먼저 예제를 위해 ex라는 데이터 프레임을 생성해 줍니다.
> ex <- data.frame(BarcodeA=rep(c(1,'.'),each=4),BarcodeB=rep(c('.',1),each=4),BarcodeC=rep(c(1,'.',1,1),each=1))

> ex
  BarcodeD BarcodeA BarcodeB BarcodeC
1        1        1        .        1
2        1        1        .        .
3        1        1        .        1
4        1        1        .        1
5        .        .        1        1
6        .        .        1        .
7        .        .        1        1
8        .        .        1        1


> ex$Pos <- c("Chr1_100_200","Chr1_200_300","Chr1_300_400","Chr1_400_500","Chr2_100_200","Chr2_200_300","Chr2_300_400","Chr2_400_500")
> 
> ex
  BarcodeD BarcodeA BarcodeB BarcodeC          Pos
1        1        1        .        1 Chr1_100_200
2        1        1        .        . Chr1_200_300
3        1        1        .        1 Chr1_300_400
4        1        1        .        1 Chr1_400_500
5        .        .        1        1 Chr2_100_200
6        .        .        1        . Chr2_200_300
7        .        .        1        1 Chr2_300_400
8        .        .        1        1 Chr2_400_500


이제 ex라는 예제 데이터가 생성되었으면, 패키지를 다운로드 받아줍니다.
install.packages("devtools")
devtools::install_github("tidyverse/tidyr") 
install.packages("here")

library(tidyverse) 
library(here)

아래의 명령어를 사용해서 열에 있는 정보를 행으로 전부 옮겨올 수 있습니다.
> NewTable <- ex %>% 
+         tidyr::pivot_longer(
+      cols = starts_with("barcode"),
+      values_to = "pos")


> NewTable
# A tibble: 32 x 3
   Pos          name     pos  
   <chr>        <chr>    <fct>
 1 Chr1_100_200 BarcodeD 1    
 2 Chr1_100_200 BarcodeA 1    
 3 Chr1_100_200 BarcodeB .    
 4 Chr1_100_200 BarcodeC 1    
 5 Chr1_200_300 BarcodeD 1    
 6 Chr1_200_300 BarcodeA 1    
 7 Chr1_200_300 BarcodeB .    
 8 Chr1_200_300 BarcodeC .    
 9 Chr1_300_400 BarcodeD 1    
10 Chr1_300_400 BarcodeA 1    
# ... with 22 more rows