2015-04-08 52 views
2

我只想使用變量的對象作爲要保存的對象的名稱。例如:關於保存由var的對象命名的數據R

y <- matrix(1:30,nrow=5) 
name <- "CHLYT" 
save(assign(name,y), file="J:/畢業設計/newdata/test.RData") 

我要保存的變量「y」的名稱爲「CHLYT」,使用存儲在變量「名」的名稱。我不想使用save(CHLYT,file="")。當我打開文件「test.RData」時,我希望在我的環境中看到一個變量「CHLYT」。

+0

你想用'「CHLYT」'作爲文件名嗎? – PoGibas

+0

@Pgibas不是文件名,而是var的名字。當我打開'test.RData'文件時,我希望它會顯示一個名爲'CHLYT'的變量 – Cheng

回答

3

您可以使用環境來做到這一點。 (你也可以做它在全球環境中,但我認爲這是清潔工。)

e <- new.env() # create new environment 
assign(name, y, envir = e) # assign into that environment 
save(list=name, envir = e, file="test.RData") # save from environment 
rm(list=ls(all=TRUE)) # remove everything (for demonstration) 
ls() 
# character(0) 
load("test.RData") # reload 
ls() 
# [1] "CHLYT" 
CHLYT 
#  [,1] [,2] [,3] [,4] [,5] [,6] 
# [1,] 1 6 11 16 21 26 
# [2,] 2 7 12 17 22 27 
# [3,] 3 8 13 18 23 28 
# [4,] 4 9 14 19 24 29 
# [5,] 5 10 15 20 25 30 

的使用注意事項的listenvir參數save()list將對象名的向量作爲字符串;這允許您在save內使用您的name變量。 envir參數告訴save在這種情況下,在我們的新e環境中查找指定對象的位置。

load ing,y對象現在具有新的對象名稱,並且它默認加載到.GlobalEnv中。