Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
很长的一个“列表”;。asc";R中的文件并应用do.call。如何处理?_R_List_Large Data - Fatal编程技术网

很长的一个“列表”;。asc";R中的文件并应用do.call。如何处理?

很长的一个“列表”;。asc";R中的文件并应用do.call。如何处理?,r,list,large-data,R,List,Large Data,希望你能帮我。我正在编写一个代码,该代码允许我将很长的.asc文件列表放在一起(它们包含307200(640*480)像素,每个文件都有来自热红外相机的温度信息)。我开发的代码只包含5个文件。但是,当试图将代码应用于整个文件列表(例如,或多或少4000个.asc文件)时,R会被卡住。我被告知应该使用批处理或任何优化代码来修改代码。然而,我不是这个领域的专家,我需要一些帮助。 我在这里包括了代码的第一部分,它列出了所有的.asc文件,并将它们放在一个单数据框中 temp = list.files(

希望你能帮我。我正在编写一个代码,该代码允许我将很长的.asc文件列表放在一起(它们包含307200(640*480)像素,每个文件都有来自热红外相机的温度信息)。我开发的代码只包含5个文件。但是,当试图将代码应用于整个文件列表(例如,或多或少4000个.asc文件)时,R会被卡住。我被告知应该使用批处理或任何优化代码来修改代码。然而,我不是这个领域的专家,我需要一些帮助。 我在这里包括了代码的第一部分,它列出了所有的.asc文件,并将它们放在一个单数据框中

temp = list.files(pattern="*.asc")
myfiles = do.call("cbind", lapply(temp, function(x) read.csv(x,
                  sep="\t",dec=",",stringsAsFactors=FALSE,header=FALSE)))
mf<-myfiles[c(-1:-8),]

colnames(mf)<-seq(1,ncol(mf),by=1)
rownames(mf)<-seq(1,nrow(mf),by=1)

for (i in 1:ncol(mf)){
      mf[,i]<-sub(",",".",mf[,i])
      mf[,i]<-sub("\t","",mf[,i])
      }

for(i in 1:ncol(mf)){
      mf[,i]<-as.numeric(mf[,i])
      }
temp=list.files(pattern=“*.asc”)
myfiles=do.call(“cbind”),lappy(temp,函数(x)read.csv(x,
sep=“\t”,dec=“,”,stringsAsFactors=FALSE,header=FALSE)))

M在什么地方卡住了?在第二行中,因为您使用了太多内存?请分析您的代码以确定瓶颈。一个问题是
for
循环。你应该避开它们。例如,我甚至不知道第一个
for
循环在那里做什么。您已经在读取文件时为小数点指定了正确的字符和正确的列分隔符。为什么要使用
sub
替换数据中不应该存在的内容?如果您不运行第一个
for
循环(将每个数字变量转换为字符变量),则不需要第二个
for
循环。此外,如果您需要
for
循环,如果您使用以下行替换它们,则可能可以避免使用它们:
mf[]您需要一起读取所有文件吗?你不能一次分析一个文件吗?大卫H:是的,它被卡住了,因为它占用了大量内存,大约8克。有人建议我通过并行化或批处理来改进我的代码。但我在这方面没有经验。