Как остановить lapply от печати в консоль? - PullRequest
1 голос
/ 06 марта 2019

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

load_shapefiles <- function(file_name){
#grabs the last two digits of the year for the current file
partial_year <- str_sub(file_name, start = 9, end = 10)
#read in files
st_read(dsn = sprintf("data/%s", file_name), layer = sprintf("Census_sum_%s", partial_year))
}

#apply the loading function across a list of file names
list_data <- lapply(list_filenames, function(x) load_shapefiles(x))

Код выполняется очень быстро, но для каждого файла выводится некоторая информация, подобная этой:

Reading layer 'Census_sum_17' from data source xxxx using driver ESRI Shapefile Simple feature collection with xxxxx features and xxxxxx fields geometry type: POLYGON dimension: XY bbox: xmin: xxxx ymin: xxxxxx xmax: xxxxxx ymax: xxxxxxx epsg (SRID): NA proj4string: xxxxx

Примечание: я заменил 'xxxx' фактическими значениями.

Я бы хотел, чтобы он не печатал эту информацию в консоли. Я попытался обернуть lapply и функцию в lapply в invisible() , как рекомендовано здесь . Ни один из подходов не сработал. Есть идеи?

1 Ответ

1 голос
/ 06 марта 2019

Использование capture.output(load_shapefiles(x)) сработало там, где invisible(load_shapefiles(x)) нет.

Спасибо Руи Баррадасу за ответ

РЕДАКТИРОВАТЬ: st_read имеет параметр с именем quiet, который определяет, является ли илине будет печатать информацию о файле, который он читает.Установка quiet в ИСТИНА исключает необходимость переноса функции в capture.output или invisible.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...