2013-07-18 2 views
0

나는 여러 파일을 읽고 히트 맵을 작성한 후에 출력을 저장합니다. 어쨌든, 아래에 내 코드에 문제가 있으며 작동하지 않는 이유를 알 수 없습니다. 파일 : mxn.dat, scu.dat, emun.dat, ser.dat읽기 및 저장을위한 여러 파일

files <- list.files(pattern=".dat") 
for (i in length(files)){ 
data <-read.table(files[i],row.names=1,header=T,sep='\t') 
    for in length(files){ 
    png('i.png') 
    pheatmap(t(data[i]), cellwidth = 32, cellheight = 14, fontsize = 5, show_colnames = T, cluster_cols = FALSE) 
    dev.off() 
    } 
} 

코드 작동을위한 도움이 필요합니다.

감사

+0

'for length (files) {'은 내게 정상적으로 보이지 않습니다. – ndoogan

+0

또한''i.png ''는''1.png''와 같이 평가되지 않습니다. 이를 위해서는'paste0()'을 사용해야합니다. – ndoogan

+2

'길이 (파일)'이 10이라고 말하면'for (i in 10) {...', 당신은'1 : 길이 (파일)'을 의미합니다 –

답변

0

아니 재현 예는 그래서이 작동합니다 (그리고 어떻게 든이 너무 미래 방문자에게 유용 할 것으로 지역화하고 있다고 생각)하면 테스트하는 방법이 없습니다, 그러나 아마 시도 SimonO101의 솔루션이 ...

files <- list.files(pattern=".dat") 

for (i in 1:length(files)){ 
    data <-read.table(files[i],row.names=1,header=T,sep='\t') 
    png(paste0(i , '.png')) 
    pheatmap(t(data), cellwidth = 32, cellheight = 14, fontsize = 5, show_colnames = T, cluster_cols = FALSE) 
    dev.off() 
    } 
+0

감사합니다 SimonO101 및 Vaettchen. 이 코드는 이제 simon의 변경 사항과 함께 작동하지만 저장된 출력 파일 이름은 1.png, 2.png, 3.png 및 4.png입니다. 출력 파일을 입력 파일의 해당 이름으로 저장하는 방법을 찾고있었습니다 (mxn.png, scu.png, emun.png, ser.png) – user27976

+0

그게'gsub()'버전의 기능입니다 ... – vaettchen

0

변화 :

files <- list.files(pattern=".dat") 

for(f in files) 
{ 
    data <-read.table(f, row.names = TRUE, header = TRUE, sep = '\t') 
    png(gsub("pdf", "png", f)) 
    pheatmap(t(data), cellwidth = 32, cellheight = 14, fontsize = 5, show_colnames = T, cluster_cols = FALSE) 
    dev.off() 
} 

읽기 쉬워서 원본 파일 이름을 보존하고 확장명을 변경하는 것이 유리합니다 (?).