0
x<-sample(0:1,20,TRUE)
predict <- function(x,k){
n <- length(x)
k2 <- k/2
pred<-vector(length=n-k)
csx<-c(0,cumsum(x))
for (i in 1:(n-k)){
pred[i] <-ifelse(csx[i+k]-csx[i] >= k2,1,0)
}
return(mean(abs(pred-x[(k+1):n])))
}
這個代碼在我輸入單個數字到k時有效。在R中做一個簡單的功能
predict(x,2)
但我想將k設置爲範圍1到length(x)/ 2,在這種情況下爲1:10。 並使其成爲一個功能。所以,當我只是簡單地鍵入predict(x,k)
,結果將是predict(x,1) predict(x,2), .. predict(x,length(x)/2)
我該怎麼做?
我比較習慣到Python,所以我嘗試添加這最後一行,沒有工作
for (i in range(1:length(x)/2)) predict(x,i)
謝謝你的回答。我可以看到你的答案是有效的,但是我可以通過這種方式作爲一種功能嗎? –