2015-06-11 34 views
1

我有在R. 一個問題,我已經使用這種方法加載從文件夾的文件(如文件列表):參考名單的第i個元素中的R

ff <- list.files(path=" ", full.names=TRUE) 
myfilelist <- lapply(ff, read.table) 
names(myfilelist) <- list.files(path=" ", full.names=FALSE) 

在myfilelist我有數據幀名稱爲:A1.txt,A2.txt,A3.txt ..等

現在我想用'i'th列表元素來更改我的數據,例如 與每個數據幀刪除行總和= 0。

我試過了:

A1 <- A1[which(rowSums(A1) > 0),] 

它工作。 我怎樣才能一次完成所有A[i]

回答

2

嘗試此代碼:

lapply(myfilelist, function(x) { 
         x <- x[which(rowSums(x) > 0),] 
         return(x) 
        }) 
+2

匿名函數需要一個返回值:'sapply(myfilelist,函數(X){X [rowSums(X)> 0,]})' – Roland

+0

@Roland由於一個一堆爲了指出這一點。我已經更新了我的答案。 –

+0

爲什麼使用'sapply'?它可能會改變'myfilelist'的結構。應該使用'lapply'。 – nicola