2015-04-03 67 views
-1

我想用varname的不同值運行約50次。Rhelp:for循環和參數

Sls_Other_$varname_y1_12 = diff (Sls_Other_$varname_data [,4] , lag=12) 

$ varname應該由for循環的每次迭代的順序列表中的關鍵字替換。我試着寫這樣的事情 -

for (i in 1:nrow(VarCodes)) { 
    nm<-VarCodes[i] 
    Sls_Other_$nm_y1_12 = diff (Sls_Other_$nm_data [,4] , lag=12) } 

nrow(VarCodes)= 50

我敢肯定$納米是一個錯誤的參考。我在網上搜索,但沒有找到任何答案。任何幫助將不勝感激。

+0

的'$'函數不評價它的RHS參數的部分。需要使用「[[」。 – 2015-04-03 20:42:19

回答

1

如果你真的相信這成功:

Sls_Other_$varname_y1_12 = diff (Sls_Other_$varname_data [,4] , lag=12) 
# Since the Sls_Other_$varname_data [,4] looks wrong if Sls_Other_ is a dataframe 

然後可能是一些沿着這些路線:

for (i in 1:nrow(VarCodes)) { 
    nm<-VarCodes[i] 
    Sls_Other_[[paste0(nm, "_y1_12")]] <- 
        diff (Sls_Other_[[paste0(nm, "_data")]] [,4] , lag=12) } 
+0

謝謝。這是一個分隔文件,因此[,4]有效。然而,看起來我存儲這個列表的方式並不正確。以這種方式閱讀清單的理想格式是什麼?我的列表是一個包含50行的單列文件,並且是字母數字。 – sumoka 2015-04-03 21:02:02

+0

沒有稱爲「分隔文件」的R數據結構。您需要在該對象上發佈str()。 – 2015-04-03 21:05:10

+0

我可以使用以下內容讀取文件 - Sls_Other_Line_949_data = read.delim(「C:/file_path/filename.txt」,header = TRUE,sep =「|」,quote =「」,dec =「。」) str(VarCodes) 'data.frame':\t 49 obs。 1變量: $ V1:因子w/49級別「BU_601」,「BU_604」,..:1 2 3 4 5 6 7 8 9 10 ... – sumoka 2015-04-03 21:44:53