我有2个数字 vector 。 vector “v”以秒为单位显示进程何时开始。 vector u显示 vector u中的进程工作多少时间。

我想创建一个 vector ,说明每秒有多少个进程在工作。
因此,这个玩具示例:我创建了一个 vector “total”,即以秒0开始(不要紧记 vector 的末尾),并且我将在每个位置保存在该秒中有多少个进程在工作。因此,例如,在 vector 的第一个位置(时间0),我的代码说我将有1个进程。

v <- c(0,1,2,3,4,5)
u <- c(1.2, 0.1, 1.2, 1, 0.5, 0)
j = 1
total <- rep(0, times = 10)
begin <- integer()
end <- integer()
repeat{
  begin<- v[j] +1
  end <- begin + u[j]%/%1
  for(i in begin:end){
    if(total[i] == 0){ total[i] <-1}
    else total[i] = total[i] +1
  }
  if(j ==length(v)) break
  j = j+1
}

total
 [1] 1 2 1 2 2 1 0 0 0 0

我收到此错误(在实际情况下不是这样):
Error in begin:end : argument of length 0

(我尝试使用if,以防begin = end),但“for”仅适用于一个职位。

会发生什么??

最佳答案

在这种情况下,可以使用seq.int代替:。例如:

for (a in seq.int(from=3, to=3)) {
  print(a)
}
[1] 3

关于r - for循环R中长度为0的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24263228/

10-12 19:09
查看更多