看板 R_Language 關於我們 聯絡資訊
※ 引述《jasonfghx (工人)》之銘言: : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉) : [問題敘述]: : lib<-c(100,5,10) : com<-c(5,100,6) : tea<-c(10,6,100) : 現在我有這三個向量 lib com tea 都要拿出其中一個相加 : for(i in 1:3){ : for(j in 1:3){ : for(k in 1:3){ : a<-lib[i]+com[j]+tea[k] : b[k]<-lib[i]+com[j]+tea[k] : print(a) : } : } : } : 我主要想請教我得到了27個數據可以怎麼做把它存成一個矩陣? : 因為實際上我的問題會是七個向量 : 每個向量有七個數字 : 謝謝回復 : [程式範例]: : [關鍵字]: : for 迴圈 for做法: out <- matrix(NA, length(lib) * length(com) * length(tea), 1) idx <- 1 for(i in 1:3){ for(j in 1:3){ for(k in 1:3){ out[idx] <- lib[i] + com[j] + tea[k] idx <- idx + 1 } } } expand.grid做法1: rowSums(expand.grid(lib, com, tea)) expand.grid做法2: (把全部弄成list之後,用do.call,這方法比較容易延伸到多個向量) eleList <- list(lib, com, tea) rowSums(do.call(expand.grid, eleList)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.103.166 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1523274810.A.F53.html
jasonfghx: 謝謝我研究一下 04/09 19:55