在R中替换矩阵中的NA

时间:2018-10-21 01:15:58

标签: r

我创建了一个NA容器,并尝试用指定值替换NA,该指定值是其中一个函数的自变量。

num.cars.beg<-20
num.cars.end<-70
num.cars.incr<-5
num.cols<-(abs(num.cars.end-num.cars.beg)/num.cars.incr)+1
num.its<-10
car.var.mat<-matrix(NA,num.its,num.cols) #creates empty container to hold 
results
car.intervals<-c(seq(num.cars.beg,num.cars.end, num.cars.incr))
colnames(car.var.mat)<-paste(car.intervals,"Cars",sep = " ")
rownames(car.var.mat)<-paste("Iter.",c(seq(1,num.its,1)),sep = "")

这创建了一个矩阵,其中行由“ num.its”驱动,列为“ num.cars”,范围为20-70,间隔为5。对于每次迭代,我都希望通过公式“ run.sim”,并将NA替换为run.sim的值。例如:

               num.cars = 20     num.cars = 25
num.its = 1   run.sim1 output    run.sim2 output
num.its = 2   run.sim3 output    run.sim4 output

其中

run.sim(num.cars = each value in car.intervals, num.its = 2)

1 个答案:

答案 0 :(得分:0)

填充容器的关键是1)确保for循环的结构为“ 1:numcols”或“ 1:numrows”,以及2)run.sim中num.cars的参数通过[矩阵car.intervals的[],因此您可以清楚地知道该函数遍历每一行i,其在每一列j中的位置。

num.its <- 1
num.itr <- 10
for (i in 1:num.itr){
  for (j in 1:num.cols){
    car.var.mat[i,j]<-mean(run.sim(
     num.cars = car.intervals[j], 
     num.its = num.its))
  }
}