我在做交叉驗證。所以我想將數據拆分爲10倍。有人發佈了以下代碼。R交叉驗證
f_K_fold <- function(Nobs,K=10){
rs <- runif(Nobs)
id <- seq(Nobs)[order(rs)]
k <- as.integer(Nobs * seq(1, K-1)/K)
k <- matrix(c(0, rep(k, each=2), Nobs), ncol = 2, byrow = TRUE)
k[,1] <- k[,1]+1
l <- lapply(seq.int(K), function(x, k, d)
list(train=d[!(seq(d) %in% seq(k[x, 1],k[x, 2]))],
test=d[seq(k[x,1],k[x,2])]),
k=k,d=id)
return(l)
}
但是我真的不明白lapply
在做什麼。有人可以向新手解釋嗎?欣賞它。
什麼是你不明白?簡單地說,你不明白對我們沒有什麼幫助。 –
另外,我同意@Roman的一點縮進和代碼格式會真的提高可讀性。我編輯了代碼,向您展示如何格式化代碼。我還在代碼中添加了一些空格,這使得代碼更少了視覺塊,並且更具可讀性。 –