我想创建一个读取文件的循环。我试过了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")
}}
干杯
答案 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)
})