Ошибка setwd: каталоги внутри каталогов

Извините, это долго, но я новичок и хочу быть конкретным.

Я изменил количество фреймов данных в наборе каталогов, в наборе каталогов. (Это 60 внутренних каталогов, поэтому я пытаюсь автоматизировать это.) Моя цель - перечислить и открыть каждый внешний каталог; в нем перечислите и откройте каждый внутренний каталог; и в рамках этого выполняйте несколько простых функций с кадрами данных (усредняйте некоторые значения и т. д.).

Сценарий возвращает "Ошибка в setwd(inner): не может изменить рабочий каталог" и выполняет вместо этого функцию над файлами во внешнем каталоге, только в первом внешнем каталоге. Я думаю, что скрипт вызывает функции в неправильном порядке, возможно, это потому, что я вложил в циклы, такие как setwd (inner) и setwd('..') находятся внутри setwd (external) и setwd('..'), для того, чтобы получить доступ к каждому каталогу в каждом каталоге. Это не проблема рекурсии или имени пути, потому что одна и та же ошибка приводит к тому, что рекурсивные и полные имена имеют значение TRUE или FALSE в моем списке каталогов (с list.dirs).

Я читал о недостатках использования setwd, но я единственный аналитик и мне не нужно делиться сценарием с другими людьми / машинами / ОС (я использую RStudio в Mac OS 10.7.5). Есть ли лучшие функции, чем setwd, для анализа всех файлов в каждом каталоге в каждом каталоге? Или мне нужно использовать более простой сценарий для работы только внутри внутреннего каталога и применять его вручную по отдельности к этим 60 каталогам? Спасибо за чтение и заранее благодарим за любые советы, которые вы можете предложить!

1 ответ

Я буду использовать функцию list.files, которая поставляется с базой r. list.files будет рекурсивно искать папку для файлов. Вы также можете включить шаблон, чтобы функция возвращала только те файлы, которые совпадают.

list.files вернет относительный путь к файлам, которые вы ищете, чтобы вы могли прочитать каждый фрейм данных без необходимости менять ваш рабочий каталог.

Я надеюсь, что вы найдете это полезным.

Дайте мне знать, если вам нужна другая помощь.

ура

Другие вопросы по тегам