我在一个名为list1的文件夹中有4个文件作为矩阵586 * 1383,在另一个名为list2的文件夹中有4个文件作为矩阵(list1和flist2具有相同的尺寸)。
我想根据文件夹 list2 中的文件过滤文件夹 list1 中的文件。因此,只要文件夹 list1 像素中的相应文件的值大于 1000,我就想用 NA 替换文件夹 list2 中的文件中的值。
:这里是要下载的文件:
1-我尝试了这个循环,但是当我写结果时,我得到了一些奇怪的东西,这意味着我的循环不正确,结果是大小为 1kb 的文件而不是矩阵(正确的大小应该是 3166kb)。我很感激得到任何帮助我的循环更正了。
dir1<- list.files("C:\\list1", "*.img", full.names = TRUE)
dir2<- list.files("C:\\list2", "*.img", full.names = TRUE)
results<- list()
for (.files in seq_along(dir1)){
list1 <- readBin(dir1[.files], numeric(), size = 4, n = 1383*586, signed = TRUE)
list2 <- readBin(dir2[.files], integer(), size = 2, n = 1383*586, signed = TRUE)
results[[length(results) + 1L]]<- list1[list2 > 1000] <- NA}
for (i in seq_along(results)){
fileName <- sprintf("C:\\NewFile%03d.bin", i)
writeBin(as.double(results[[i]]), fileName, size = 4)}
2-谁能告诉我什么代码错了?