我有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/