• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

使用readOGR读取多个文件并输出到R中的不同文件的循环

r 来源:ECEM 8次浏览

我在文件夹中有一堆.gpx文件,我试图用readOGR读取它们,并为每个.gpx文件获取内存中的一个文件。这是什么不工作:使用readOGR读取多个文件并输出到R中的不同文件的循环

myfiles <- list.files(".", pattern = "*.gpx") 

for (i in 1:length(myfiles)) { 
    temp.gpx <- readOGR(dsn = myfiles[i], layer="tracks") 
    temp.gpx 
} 

这是做的是读取所有的文件,然后将它们写入temp.gpx。我想要做的是读取它们并将它们写入,例如,temp1.gpx,temp2.​​gpx等。

不幸的是,我对R很新,我不知道如何做到这一点。我试着在网上查找,发现一些特定于非空间文件的解决方案,并以这种或那种方式搞砸了这些文件。

有谁知道如何做到这一点?

谢谢!

===========解决方案如下:

您可以使用assign()使用其他变量来产生变量名:

myfiles <- list.files(".",pattern = "*.gpx") 

for (i in 1:length(myfiles)) { 
    varName <- paste0("temp", i, ".gpx") 
    assign(varName, readOGR(dsn = myfiles[i], layer="tracks")) 
} 

这将创建一个循环的每次迭代变量字符varName这将对价值temp1.gpxtemp2.gpx等:

## i <- 1 
varName <- paste0("temp", i, ".gpx") 
## [1] "temp1.gpx" 

assign()然后将readOGR()的结果分配给当前的temp*.gpx变量。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)