2016-06-28 135 views
-1

我与MODIS 8天的数据时,我试图一个MODIS产品的所有TXT文件导入R,而不是作为一个单独的data.frame,作为单独的txt文件。所以我可以在以后对它们应用相同的功能。主要目标是导出每个txt文件中的特定元素。我成功地排除从一个txt文件,用下面的命令所需的元素:导入多个txt文件为R

# selecting the element within the table 
idxs <- gsub("\\]",")", gsub("\\[", "c(", "[24,175], [47,977], [159,520], [163,530] 
          ,[165,721], [168,56], [217,820],[243,397],[252,991],[284,277],[292,673] 
          ,[322,775], [369,832], [396,872], [434,986],[521,563],[522,717],[604,554] 
          ,[608,50],[614,69],[752,213],[780,535],[786,898],[788,1008],[853,1159],[1014,785],[1078,1070]")) 

lst <- rbind(c(24,175), c(47,977), c(159,520), c(163,530) ,c(165,721), c(168,56), c(217,820),c(243,397),c(252,991),c(284,277),c(292,673),c(322,775), c(369,832), c(396,872), c(434,986),c(521,563),c(522,717),c(604,554),c(608,50),c(614,69),c(752,213),c(780,535),c(786,898),c(788,1008),c(853,1159),c(1014,785),c(1078,1070)) 

mat <- matrix(scan("lst.txt",skip = 6),nrow=1200) 

Clist <- as.data.frame(mat[lst]) 

但我需要从所有txt文件的这些元素,老实说,我并不想手动运行它的871倍。所以我尝试读取所有的txt文件,然后将这个函数应用于它们。但不幸的是它不起作用。这里是我的方法:

folder <- "C:/Users/Documents/R/MODIS/txt/"  
txt_files <- list.files(path=folder, pattern=".txt") 

df= c(rep(data.frame(), length(txt_files))) 

for(i in 1:length(txt_files)) {df[[i]]<- as.list(read.table(txt_files[i]))} 

,这是我遇到的错误:

**Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
    In file(file, "rt") : 
    cannot open file 'rastert_a2001361.txt': No such file or directory** 

附加信息:每个txt文件包括1200rows和1200columns和20-30的元素需要从表格中抽出。

我非常期待您的回答和欣赏任何帮助或这件事的建议。

+0

你肯定rastert_a2001361.txt'存在于指定的路径文件'。 – Venky

+0

嗨 是的,它存在。它不是一个特定的txt文件的问题。如果我删除这个文件夹,它会命名文件夹中的另一个txt文件。 – AbTnA

+0

看看格雷戈尔的[这篇文章]的答案(http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)的一些提示。 – lmo

回答

0

的问题是,list.files只返回文件夹中的文件名,而不是完整的文件路径。如果你的工作方向不是"C:/Users/Documents/R/MODIS/txt/"你的代码无法工作。更改您的代码为

for(i in 1:length(txt_files)) {df[[i]]<- as.list(read.table(file.path(folder, txt_files[i])))} 

现在它应该工作。

file.path结合您的路径,并与正确的,OS具体,路径分隔符的文件。