[英]How to fill out a matrix with a loop in R?
a <- function(b,c,d,e,f){
if(f == 1){
Value1 <- b * c * d * e
return(Value1)
}else if(f == 2){
Value2 <- b * c * d
return(Value2)
}else{
Value3 <- 0
}
}
假設我想用c = seq(1,2,0.2)
和 b,e,f 來分析d =seq(1,1.2,0.01)
的 Value2 和 d 之間的關系。
我試過這個:
ValueChange <- matrix(,6,21)
for(i in seq(1,1.2,0.01)){
for(j in seq(1,2,0.2)){
for(n in 1:6){
ValueChange[n,] <- c(ValueChange, a(10,j,i,5,2))
}
}
}
ValueChange
它應該是這樣的:
ValueChange[1,1] <- a(10,1,1,5,2)
ValueChange[1,2] <- a(10,1,1.01,5,2)
...
ValueChange[2,1] <- a(10,1.2,1,5,2)
...
出現錯誤信息:要替換的項目數不是替換長度的倍數。 但是,我不知道如何解決它。 謝謝你的幫助!
對於您的嵌套for
循環,它可能類似於
p <- seq(1,1.2,0.01)
q <- seq(1,2,0.2)
for(i in seq_along(p)){
for(j in seq_along(q)){
ValueChange[j,i] <- a(10,q[j],p[i],5,2)
}
}
也許你可以嘗試嵌套sapply
ValueChange <- sapply(seq(1,1.2,0.01), function(i) sapply(seq(1,2,0.2), function(j) a(10,j,i,5,2)))
給出與嵌套for
循環相同的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.