簡體   English   中英

我如何在矩陣R中進行循環

[英]How can i make a loop in R of a matrix

我有一個“ n”列和“ k”行的矩陣(名為x)。我想做一個循環,但我不知道如何。

fit1=hw(x[,1],h=12)
fit2=hw(x[,2],h=12)
fit3=hw(x[,3],h=12)
fit4=hw(x[,4],h=12)
fit5=hw(x[,5],h=12)
.

.
.
fitn=hw(x[,n],h=12)

問題是,如果我不為此做循環,我將無法繼續。 更具體地說,我在一個項目中,我必須預測矩陣的數據。 通過測試,我得出結論,最好的數據存儲方法是HoltsWinter。 如果一個只有一列,這將很容易。

x<-read.table()
xx<-ts(x,start=,frequency=)
fit<-hw(xx,h=12,model="additive") or fit<-hw(xx,h=12,model="multiplicative")
fit$mean
and in final step a plot.

但是在我的情況下,我沒有專欄..但是我有很多專欄..所以不可能做相同的思考n次。 我相信存在一個可以幫助我解決問題的循環。

您可能應該調查apply家庭。 一些示例: lapply()用於計算每個系列(列)的平均值:

x <- data.frame( a =rnorm(100), b=rnorm(100), c=rnorm(100))
xx <- ts(x, start=2000, frequency=4)
lapply(x, mean)
$a
[1] 0.03697344

$b
[1] -0.1540831

$c
[1] -0.2267992

或者sapply這里使用連同HoltWinters()stats

sapply(names(x), function(i,...) HoltWinters(xx[,i],...),  seasonal = "additive" )
             a           b           c          
fitted       Numeric,384 Numeric,384 Numeric,384
x            Numeric,100 Numeric,100 Numeric,100
alpha        0.1388421   0.1657252   0.06299144 
beta         0.08518182  0.1902871   0.2389817  
gamma        0.1799012   0.2454659   0.1603644  
coefficients Numeric,6   Numeric,6   Numeric,6  
seasonal     "additive"  "additive"  "additive" 
SSE          112.2228    137.912     135.6189   
call         Expression  Expression  Expression 
fit=list()
for (i in 1:ncol(x)) {

fit[[i]]=hw(x[,i],h=12)

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM