대용량 파일에서 생성된 여러 분할 파일의 중앙값을 계산하는 방법

대용량 파일에서 생성된 여러 분할 파일의 중앙값을 계산하는 방법

내 마우스 데이터 세트(파일 이름=테스트)의 중앙값을 계산하고 싶습니다. 데이터 세트가 상당히 크기 때문에 다음 명령을 사용하여 데이터 세트를 여러 파일(n=5)로 분할했습니다.

 split -l$((`wc -l < test`/5)) test test.split -da 4

이 단계를 마치면 이제 test.split0000, test.split0001, test.split0002, test.split0003, test.split0004라는 5개의 파일이 생겼습니다.

다음 스크립트를 사용하여 중앙값을 계산합니다.

#!/usr/bin/R

data <- read.table("Input_file", row.names=1, header=T)

M <- apply(data, 1, median) 

write.table(M, "Final_median_mousegene", quote=FALSE, sep="\t", row.names=TRUE)

q()

하지만 이제 파일이 여러 개 있으므로 분할된 모든 파일에서 함께 작동하는 스크립트를 실행하고 싶습니다.

감사해요

답변1

"중앙값은 숫자 집합의 중간점, 중심점 또는 중간점입니다. 숫자 집합을 낮은 것부터 높은 것 순으로 주문할 때 중앙값은 바로 가운데에 있는 숫자입니다. 한 값의 50% 설정은 중앙값 아래, 중앙값보다 50% 높은 곳에서 발생합니다.”

따라서 R을 사용하지 마십시오. 대용량 파일을 정렬하면 중간 값이 중앙값이 됩니다.

답변2

 #!/usr/bin/R

 files <- list.files(pattern = "test.split*")

 for (i in 1:length(files)){
 data <- read.table(files[i], header=F, row.names = 1)
 M <- apply(data, 1, median) 
 write.table(M, paste0("Median_", files[i]), quote=FALSE, sep="\t", 
 row.names=TRUE)
 }
q()

관련 정보