我正在寫一個R腳本(不是函數,只是一個命令集合),它將讀取一個csv文件到數據框中。 CSV文件很大,如果它已經被讀取,我不想每次運行腳本時都讀取它。這是怎麼了檢查,如果該變量存在:讀取一個文件,如果它之前沒有讀過R
if (!exists("df")) {
df <- read_csv(file = "./some_file.csv")
}
不過,我每次運行腳本無論df
是否存在時,read_csv
函數運行。
我在這裏錯過了什麼?我應該指定應該在哪裏搜索數據幀df
?
編輯:這是我想要實現的一些背景。通常,在工作時我在R或Rstudio中交互工作。如果我正在準備一個文件,我讀了它,然後數據在GlobalEnvinronment中,然後我使用我的數據。我試圖把所有的工作都放在一個腳本中,然後逐步添加到腳本中。在腳本的開頭,我讀取了大約11MB的CSV文件,然後開始處理數據。但是,當我在腳本中添加新行並且想要測試它們時,我不想再讀取CSV文件。它已被讀取並且數據框在Global環境中可用。這就是我在if語句中調用read_csv()
函數的原因。
儘管全局環境中存在變量,但每次運行腳本時,都會運行read_csv()
函數,就好像忽略if
語句一樣。
是在DF你的真實變量名? – Heroka
你可以多展示一下你在做什麼? – Heroka
這很奇怪 - 它對我來說就像你使用它一樣。你解決了這個問題嗎? – Murray