2017-01-05 52 views
0

我想創建一個項目列表,然後在列表中一次移動一個項目,以替換R腳本中將引用各種對象的部分中的一個單詞,以便只是。替換R腳本中的重複文本

例如,我開始與此:

A <- mydata[1:48, "A"] 
B <- mydata[1:48, "B"] 
C <- mydata[1:48, "C"] 

我想簡化所以它是腳本的一行但運行對於x = A的值,X = B,並且x = C,其中x是命名一個對象(不是「」),而是調用一個列(在「」)。

x <- mydata[1:48, "x"] 
+1

也許你想使用一個列表。看到[這個問題]格雷戈爾的帖子(http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)瞭解更多。 – lmo

回答

0

你可以簡單地解決迭代值的列表,並使用assign功能(在指定的環境中值的名稱)的問題。

試試這個重複性代碼:

> set.seed(123) 
> my_data <- as.data.frame(matrix(rnorm(3*50), nrow=50, ncol=3)) 
> values_list <- c("A","B","C") 
> colnames(my_data) <- values_list 
> 
> for (v in values_list) { 
+ assign(v, my_data[1:48, v]) 
+ } 
> A 
[1] -0.56047565 -0.23017749 1.55870831 0.07050839 0.12928774 
[6] 1.71506499 0.46091621 -1.26506123 -0.68685285 -0.44566197 
[11] 1.22408180 0.35981383 0.40077145 0.11068272 -0.55584113 
[16] 1.78691314 0.49785048 -1.96661716 0.70135590 -0.47279141 
[21] -1.06782371 -0.21797491 -1.02600445 -0.72889123 -0.62503927 
[26] -1.68669331 0.83778704 0.15337312 -1.13813694 1.25381492 
[31] 0.42646422 -0.29507148 0.89512566 0.87813349 0.82158108 
[36] 0.68864025 0.55391765 -0.06191171 -0.30596266 -0.38047100 
[41] -0.69470698 -0.20791728 -1.26539635 2.16895597 1.20796200 
[46] -1.12310858 -0.40288484 -0.46665535 

正如顯示,你可以使用變量ABC

+0

添加的細節會提高質量嗎?例如 – TJames

+0

什麼類型的參數需要nnetar函數? – enneppi

+0

我試圖用編輯來澄清我的問題。 – TJames