[英]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.