2013-08-30 179 views
0

我有一個變量a=0.01添加字符串變量名

我然後創建一個矩陣b<-matrix(data=NA,ncol=2,nrow=9)

我想通過將存儲在a它的名字的價值重命名此矩陣。

結果應該b_0.01

+2

你的用例是什麼?我敢打賭,現在有一種更好的選擇可以替代你現在要做的事情。 – Roland

回答

3

我敢打賭,有更優雅的方式來實現你所需要的,但是這似乎工作:以下@羅蘭的評論

assign(x = paste("b", a, sep = "_"), value = b) 

編輯:

rm(b) 

請注意,我在狹義上解決了您的問題。正如@Roland和@Paul Hiemstra所指出的那樣,工作流程中可能還有更多的一般方面可以考慮。

+0

但這不是重命名。你最終有兩個對象。我不確定是否立即在內存中創建副本,但只要修改新對象,就需要兩倍的內存。至少包括'rm(b)'。 – Roland

+0

@羅蘭,謝謝你的評論!我加上'rm'。我完全同意這不是重新命名 - 它只是我最好的選擇。我很樂意看到純粹的重命名解決方案。是的,我支持你對OP的評論。 – Henrik

3

您可以使用assign來完成這件事:

a = 0.01 
b = matrix(data=NA,ncol=2,nrow=9) 
assign(sprintf('b_%s', a), b) 
b_0.01 

一般情況下,我會避免產生這樣的數據對象。相反,我將使用list來創建,存儲和操作對象組。