У меня есть несколько мест, которые могут содержать файл, который мне нужен.Как найти первый существующий файл в последовательности
Я хочу найти первый существующий файл в векторе.
Оба
find.existing.file <- function (files) {
present <- which(file.exists(files))
stopifnot(length(present) > 0)
files[present[1]]
}
и
find.existing.file <- function (files) {
for (i in 1:length(files))
if (file.exists(files[i]))
return(files[i])
stop("None exist: ",paste(files,collapse=" "))
}
должны делать то, что мне нужно.
Однако первая версия проверяет все файлы вместо возврата на первый существующий файл, а вторая использует цикл, который, я думаю, не очень «R'y».
Мне было интересно, отсутствует ли я что-то очевидное.
Спасибо.
По характеру зверя это не является последовательной операцией, и если вы хотите, чтобы написать свой собственный 'C++ 'function, цикл, как в вашем втором решении, - это способ пойти (при условии, что у вас есть большое количество файлов для проверки). – eddi