2016-09-25 42 views
0

我想要做的是在R中設置一個名爲「filename」的值,其中內容是文件名的第一部分。在R中設置和調用一個值作爲文件名

名< - 「E14_AD_4hr_」

然後我想用這個「文件名」的價值將通過的R腳本來創建兩個名稱和呼叫載體。

使用bash的$,語法將是這個樣子:

名< - 「E14_AD_4hr_」

$ filename_Asz1 < - 函數read.table(「〜/文檔/ 1608_10_MiSeq /命名的文件夾2/E14-AD-4_S20_L001/Filtered_by_quality/E14-AD-4_S20_L001_Asz1/methylation.tsv 「報價= 」\「」,comment.char = 「」) 等

但這僅給我一個R.中的錯誤

爲了讓它正確運行腳本,我必須手動輸入文件名的第一部分,這是一個痛苦和非常不雅(腳本更多,但我只發佈第一行)。

E14_AD_4hr_Asz1 < - 函數read.table( 「〜/文檔/ 1608_10_MiSeq /命名文件夾2/E14-AD-4_S20_L001/Filtered_by_quality/E14-AD-4_S20_L001_Asz1/methylation.tsv」,報價= 「\」」, comment.char =「」)

基本上我問的是有沒有人知道正確的語法設置並以這種方式叫一個名字,在R'

感謝。

+0

如果我們正在讀取多個文件,最好將它們保存在一個列表中。名爲「Asz1,Asz2,AszN」的列表中的每個數據對象。看到這[post](http://stackoverflow.com/questions/11433432/importing-multiple-csv-files-into-r) – zx8754

回答

-2

我相信你正在尋找assign

prefix = "E14_AD_4hr_" 

var_name = sprintf("%s_Asz1", prefix) 
assign(var_name, read.table(...)) 

請注意,如果你調用一個函數的內部分配,你可能要小心了environment你插入。您當然可以始終指定爲.GlobalEnv,或者您可以撥打parent.env()在堆棧幀中跳轉一層。

如果您需要稍後調用這些生成的名稱,則可能需要parseeval。例如,如果我們在您的變量名稱中存儲10個隨機數字:

prefix = "E14_AD_4hr_" 

var_name = sprintf("%s_Asz1", prefix) 
assign(var_name, rnorm(10)) 

# Get the string value back 
print(var_name) 
[1] "E14_AD_4hr__Asz1" 

# Convert to a language expression 
> print(parse(text = var_name)) 
expression(E14_AD_4hr__Asz1) 

# Evaluate in the current frame 
> print(eval(parse(text = var_name))) 
[1] -0.31945098 -0.54377885 -0.27967344 1.06523260 1.56782875 -0.64311208 0.02052175 -0.32418446 
[9] 1.85739602 0.59076400 
相關問題