-1
的文件夾中運行的只有一個文件這個腳本時:爲什麼lapply會在這個腳本中產生隨機的NA值?
emboss<-read.table("emboss_012.ss",header=T)
x<-table(emboss[,2],emboss[,3])/NROW(emboss[,3])
y<-as.vector(t(x))
nms <- expand.grid(colnames(x), rownames(x))
names(y) <- paste(nms[,2],nms[,1],sep="")
write.table(t(y), file = "test3.csv",append=TRUE)
我得到期望的結果
然而,在一個隨時隨地在任意NA的出現在文件夾結果中的所有文件這樣做。我做這個:
runForAll <- function(x) {
emboss <- read.table(x,header=T)
x <- table(emboss[,2],emboss[,3])/NROW(emboss[,3])
y <- as.vector(t(x))
nms <- expand.grid(colnames(x), rownames(x))
names(y) <- paste(nms[,2],nms[,1],sep="")
return(t(y))
}
my.files <- list.files(pattern = "emboss_\\d+\\.ss")
outputs <- lapply(my.files, FUN = runForAll)
library(plyr)
one.header.output <- rbind.fill.matrix(outputs)
write.table(one.header.output, file = "nontpsec.csv")
和我的文件所在的位置:
https://drive.google.com/folderview?id=0B0iDswLYaZ0zWjQ4RjdnMEUzUW8&usp=sharing
這是非常奇怪的,不能爲什麼它正在發生,尤其是當所有其他數據是正確的,甚至是當一次循環遍歷所有文件時。
有趣的是,調用as.matrix(輸出)顯示了違規長度減少文件。即使當你眼球的每一個輸出它顯示沒有丟失的數據。 – brucezepplin
根據我的經驗,當我嘗試構建一個最小的,自包含的示例時,我會取得最佳效果。 95%的案例(對我來說)這個問題變得明顯。考慮在將來發布這樣一個示例(請參閱http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 –