有没有一种方法可以基于for循环中匹配的文件名在r中创建列表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有一种方法可以基于for循环中匹配的文件名在r中创建列表?相关的知识,希望对你有一定的参考价值。
((我对R很陌生,所以我一直在考虑用python术语解决问题,然后尝试对其进行翻译,但它一直没有起作用-不过,我需要R才能获得其栅格/ GIS功能)
我的目标是获取我从文件夹生成的文件名列表(以*** DTM.tif或*** DSM.tif结尾),遍历该列表,尝试遍历每个元素中的字符串,找到与DSM和DTM文件匹配的文件名,然后将文件附加到新列表中,从而分别对DSM文件和DTM文件进行排序。
filenames
##### initialize lists
dsmlst <- list_along()
dtmlst <- list_along()
##### for loop
for (i in seq_along(filenames)) {
n = nchar(i)
if substr(i, n-7, n) == "DSM.tif" {
list.append(dsmlst, i)
} else if substr(i, n-7, n) == "DTM.tif" {
list.append(dtmlst, i)
}
}
dsmlst
dtmlst
这是我到目前为止所拥有的,并且我无法使其正常工作。有什么建议吗?
答案
这里,我们遍历序列,而不是文件名,因此我们需要提取该文件名
for (i in seq_along(filenames)) {
filename <- filenames[i]
n = nchar(filename)
if substr(filename, n-7, n) == "DSM.tif" {
list.append(dsmlst, filename)
} else if substr(filename, n-7, n) == "DTM.tif" {
list.append(dtmlst, filename)
}
}
以上是关于有没有一种方法可以基于for循环中匹配的文件名在r中创建列表?的主要内容,如果未能解决你的问题,请参考以下文章