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()
  } 
}

任何帮助将不胜感激以使代码正常工作。

谢谢

4

2 回答 2

0

SimonO101 解决方案的变体:

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()
} 

更容易阅读(我相信)并且具有保留原始文件名的优势(?),只更改扩展名。

于 2013-07-18T22:59:09.910 回答
0

不是一个可重复的例子,所以我无法测试这是否会起作用(不知何故,我认为这太本地化了,对未来的访问者有用),但也许试试这个......

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()
  } 
于 2013-07-18T22:39:21.547 回答