2017-08-02 84 views
0

我有幾乎相同的問題,作爲for loop to output different objects in r但我甚至沒有得到它,即使考慮這裏的解決方案(對不起): 我想創建對象(可以是矩陣,矢量或其他)取決於日曆年。R在循環中創建對象取決於我

我創建實際的一年數:

now<-Sys.time() 
actualyear<-strftime(now, format="%Y") 
actualyear<-as.numeric(actualyear) 
class(actualyear) 

在這種情況下,我想創建7個對象命名爲test2011,test2012,test2013,... test2017與equivilant歷年的內容(test2011 < - 2011年,test2012 < - 2012,....)

for(i in 2011:actualyear) {test[[i]]<-i} 
+0

用元素(可以命名)創建一個列表。我的建議是避免使用「assign」,並用對象混淆工作空間。列表完美地避免了這種編碼實踐。 –

+0

你可以在你的代碼後添加'name(test)= paste(「test」,2011:actualyear)' –

+0

使用'paste0'代替'paste'會很好。沒有摺疊參數的'paste'函數會在它們之間創建帶有空格的名稱。編程時不推薦使用這些名稱。因此更好地使用:'name(test)= paste0(「test」,2011:actualyear)' – Onyambu

回答

3

正如評論指出的那樣,你可以分配一個值的名稱與assign

for(i in 2011:actualyear) { 
    assign(paste0("test", i), i) 
}