作者celestialgod (天)
看板R_Language
标题Re: [问题] for回圈问题请教
时间Mon Apr 9 19:53:27 2018
※ 引述《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://webptt.com/cn.aspx?n=bbs/R_Language/M.1523274810.A.F53.html
1F:推 jasonfghx: 谢谢我研究一下 04/09 19:55