Я пишу сценарий R (а не функцию, просто набор команд), который будет считывать файл csv в фрейм данных. Файл CSV большой, и я не хочу его читать каждый раз, когда я запускаю скрипт, если он уже был прочитан. Это, как я проверяю, если переменная существует:Прочтите файл, если он еще не прочитан в R
if (!exists("df")) {
df <- read_csv(file = "./some_file.csv")
}
Однако каждый раз, когда я запустить скрипт, независимо от того, существует ли df
или нет, функция read_csv
работает.
Что мне здесь не хватает? Должен ли я указывать, где необходимо искать кадр данных df
?
Редактировать: Здесь немного контекста к тому, чего я пытаюсь достичь. Обычно при работе я работаю интерактивно в R или Rstudio. Если я готовлю файл, я его читаю, а затем данные находятся в GlobalEnvinronment, и я играю с моими данными. Я пытался поместить всю свою работу в скрипт и добавить к ней шаг за шагом. В начале скрипта я прочитал этот CSV-файл, который составляет около 11 МБ, а затем начал манипулировать данными. Однако, когда я добавляю новые строки в свой скрипт, и я хочу их протестировать, я не хочу снова читать CSV-файл. Он уже прочитан, и кадр данных доступен в глобальной среде. Именно по этой причине я поставил вызов функции read_csv()
внутри оператора if.
Проблема, несмотря на переменную, существующую в глобальной среде, каждый раз, когда я запускаю скрипт, запускается функция read_csv()
, как если бы оператор if
игнорировался.
Является ли ДФ вашего реального имени переменного? – Heroka
Можете ли вы показать немного больше того, что вы делаете? – Heroka
Странно - он работает для меня точно так же, как вы его используете. Вы решили эту проблему? – Murray