如何读取R中的多个文件

时间:2014-04-28 14:54:54

标签: r loops

我想创建一个读取文件的循环。我试过了paste0,但它没有用。我想对k = 1的文件执行上述命令,直到k = 10。

{for(k in 1:29){
    exprs.file <- paste0("LRRadjustedextremes0.5kgchr",k,".txt")
    eset <- read.eset(exprs.file="/home/proj/MT_Nellore/R/eBrowser/Adjusted/exprs.file")
    }}

干杯

1 个答案:

答案 0 :(得分:2)

一种有效的方法是生成带有文件名的向量,并使用lapply将其读入列表:

# Read listed files
k <- 1:29
path <- '/home/proj/MT_Nellore/R/eBrowser/Adjusted/'
files <- paste0(path, 'LRRadjustedextremes0.5kgchr', k, '.txt')
eset <- lapply(X=files, FUN=read.eset)

如果文件夹中有文件并且想要全部阅读,那么这也适用:

path <- '/home/proj/MT_Nellore/R/eBrowser/Adjusted/'
files <- list.files(path=path, pattern='.txt')
eset <- lapply(X=files, FUN=read.eset)

此外,如果您的文件太大而无法放入内存,请考虑一次加载一个文件并仅提取您需要的信息:

files <- list.files(path=path, pattern='.txt')
data <- lapply(X=files, FUN=function(file)
               {
                 tmp <- read.eset(file)
                 return(tmp$expr)
               })