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