Re: [問題] for迴圈問題請教

作者: celestialgod (天)   2018-04-09 19:53:27
※ 引述《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))
作者: jasonfghx (工人)   2018-04-09 19:55:00
謝謝我研究一下

Links booklink

Contact Us: admin [ a t ] ucptt.com