2012-10-18 73 views
0

我正試圖加載保存在某個文件夾中的數據幀。我有一個bash腳本,沿文件夾中的所有*.gzip文件循環,並將文件名作爲參數傳遞給R腳本(blah.r $file_name)。現在,在R腳本中,文件名保存爲在變量中加載字符串而不是變量的名稱(R)

file_name = commandArgs(TRUE)[1] 

並打印出正確的文件名。然而,當我嘗試加載文件

data(file_name) 

[R認爲,file_name是一個字符串,而不是一個變量,所以它說,它無法找到"file_name"

如何讓R將變量識別爲變量而不是文字字符串?

+0

這不是舊問題的重複。那個是關於訪問一個給定名稱的變量的;這個是關於從磁盤讀取數據集的。因此,'get(*)'在這裏不適用。 –

+0

@HongOoi:很棒。投票重新開放。 –

+0

您不使用'data()'函數將數據加載到R中。這是爲了從已安裝的軟件包中加載示例數據。 –

回答

2

回答這個問的問題是沿

read.table(file = file_name, ....) 

線,其中....額外的參數來設定包含要加載數據的文本文件的性質。

如果數據不是在文本文件中,而是以某種其他格式(可能是二進制格式),那麼您將需要使用正確的函數來導入這些數據。例如,如果該數據被存儲在討論R的格式之一(通過save()saveRDS())然後:

load(file = file_name) ## for save()-ed objects 

foo <- readRDS(file = file_name) ## for objects serialised via saveRDS() 

你提到的文件是*.gzip。如果是這樣,則見?connectionsgzip()功能,也可以通過包含文件名稱的對象,打開如下所示:

gzip(file_name, ....) 

其中....再次,你可能需要指定進一步參數(閱讀幫助頁面)。