2014-05-07 33 views
1

我有循環讀取目錄中的文件並對它們進行一些計算。 我想用lapply替換我的for循環,以便能夠使用parralel包來製作我的編程腳本。 有人會幫我把這個for循環轉換成lapply嗎?如何將循環轉換爲R中的lapply?

for (filename in dir(data.dir)) 
{ 


    filename = paste(data.dir,filename,sep="/") 
    dfr=read.table(filename,header=TRUE) 

    if (ncol(dfr) > 1) 
    { 
. 
. 
. 

回答

1
files <- list.files(path="...") # fill in the path, if you only want say .txt files then add pattern="txt" 
data.list <- lapply(files, function(x) read.table(x,header=T)) 

你現在有data.frames列表

res <- lapply(data.list, function(x) {if (ncol(x) > 1) {....}}) 
4

更換for (filename in dir(data.dir)) {...}lapply(dir(data.dir), function(filename) {...})

想必你需要添加某種返回值在那裏,但它不是從你的代碼的環路的輸出是明文。