내 마우스 데이터 세트(파일 이름=테스트)의 중앙값을 계산하고 싶습니다. 데이터 세트가 상당히 크기 때문에 다음 명령을 사용하여 데이터 세트를 여러 파일(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()