我正在编写一个R脚本(不是函数,只是一个命令集合),它将csv文件读入数据框。 CSV文件很大,我不想在每次运行脚本时读取它,如果已经读过的话。这就是我检查变量是否存在的方式:
if (!exists("df")) {
df <- read_csv(file = "./some_file.csv")
}
但是,无论df
是否存在,每次运行脚本时,read_csv
函数都会运行。
我在这里想念的是什么?我应该指定应该搜索df
数据框的位置吗?
编辑:这是我想要实现的一些背景。通常,在工作时我在R或Rstudio中以交互方式工作。如果我正在准备一个文件,我会读它,然后数据在GlobalEnvinronment中,我玩我的数据。我试图将我的所有工作都放在脚本中并逐步添加。在脚本的开头,我读了这个大约11MB的CSV文件,然后开始操作数据。但是,当我向我的脚本添加新行并且我想测试它们时,我不想再次读取CSV文件。它已被读取,数据框在全局环境中可用。这就是我在if语句中调用read_csv()
函数的原因。
问题是尽管全局环境中存在变量,但每次运行脚本时,都会运行read_csv()
函数,就像忽略if
语句一样。