[問題]不使用for改使用apply寫法的可能性

看板R_Language作者 (empireisme)時間4年前 (2020/03/25 03:08), 4年前編輯推噓4(403)
留言7則, 4人參與, 4年前最新討論串1/4 (看更多)
如題 最近想手刻實踐 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

03/25 07:39, 4年前 , 1F
最後的問題用outer
03/25 07:39, 1F

03/25 07:55, 4年前 , 2F
推outer沒想到還有這招
03/25 07:55, 2F

03/25 13:25, 4年前 , 3F
ty
03/25 13:25, 3F

03/26 10:10, 4年前 , 4F
第二個問題很簡單吧,用兩個for迴圈就可以達成
03/26 10:10, 4F

03/26 10:10, 4年前 , 5F

03/26 11:13, 4年前 , 6F
第二個例子用for真的很簡單呢!
03/26 11:13, 6F

03/26 11:22, 4年前 , 7F
outer( c(2:3), c(4:8) ) 原生好東西,不用嗎XD
03/26 11:22, 7F
文章代碼(AID): #1UUbgG3L (R_Language)
文章代碼(AID): #1UUbgG3L (R_Language)