Динамически отбрасывать файлы при чтении с использованием lapply - PullRequest
0 голосов
/ 16 января 2020

У меня есть следующий код для чтения нескольких файлов и добавления их отдельно в один список вместе с именем файла

foo <- function(fname){
fread(fname, skip = 5, header = TRUE, sep = " ") %>% 
mutate(fn = fname)
}

all <- lapply(files, FUN = foo)

После того, как файл прочитан , Я хотел бы вставить условие в функцию, которая проверяет некоторые свойства в файле, при неудачном завершении которого он сбрасывает файл вместе с именем файла.

Не строго относится к чтению таблицы, но также к другим файлам

Редактировать:

Я также использую следующий эффективный способ сделать это из здесь :

all <- setNames(lapply(files, foo), files)

1 Ответ

0 голосов
/ 17 января 2020

Я попробовал следующий довольно простой вариант, используя фильтр. Я использовал условие в фильтре

all <- setNames(lapply(myFiles, function(x) {readLAS(x)}), myFiles)
all <- Filter(function(x) {area(x) >= 640}, all)

Не во время выполнения функции lapply, но он использует только одну дополнительную строку кода

...