看板 R_Language 關於我們 聯絡資訊
如題 最近想手刻實踐 cross validtion的算法 上網查了一下別人的範例code 如下 x <- runif(100)*10 #Random values between 0 and 10 y <- x+rnorm(100)*.1 #y~x+error dataset <- data.frame(x,y) #Create data frame dataset<- dataset[sample(nrow(dataset)),] dataset #here is the trick folds <- cut(seq(1,nrow(dataset)),breaks=5,labels=FALSE) folds sample(nrow(dataset)) for(i in 1:5){ #Segement your data by fold using the which() function #這裡就是我想問的 testIndexes <- which(folds==i,arr.ind=TRUE) #這裡就是我想問的 testData <- dataset[testIndexes, ] trainData <- dataset[-testIndexes, ] #Use the test and train data partitions however you desire... #必須要在這個步驟去套入model 然後計算MSE } 他在切traing 和Testing時 使用了 fold的技巧 但是這整段有沒有可能 不使用for 迴圈 而改用apply家族去實現 因為真的太喜歡使用apply的簡潔了 還希望版友回答 偷偷問另外一個問題 我有一個function s 去計算 x*y s<- function(x,y){ x*y } s( c(2,3) , c(4,5) ) 這裡我會得到 8 15 但其實我想得到的是所有的可能性 8,10,12,15 請問我要如何在保有 input是 c(2,3) , c(4,5) 下 得到我要的結果呢 更甚至在 s ( c(2,3),c(4,5,6,7,8) ) 狀況下也可以得到遍歷的結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.91.75.186 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1585076880.A.0D5.html ※ 編輯: empireisme (219.91.75.186 臺灣), 03/25/2020 03:44:33
andrew43: 最後的問題用outer 03/25 07:39
locka: 推outer沒想到還有這招 03/25 07:55
empireisme: ty 03/25 13:25
jezi1878: 第二個問題很簡單吧,用兩個for迴圈就可以達成 03/26 10:10
jezi1878: https://i.imgur.com/9Nno130.png 03/26 10:10
empireisme: 第二個例子用for真的很簡單呢! 03/26 11:13
locka: outer( c(2:3), c(4:8) ) 原生好東西,不用嗎XD 03/26 11:22